Changeset 27417


Ignore:
Timestamp:
11/24/22 00:49:18 (2 years ago)
Author:
jdquinn
Message:

CHG: Python translation of debris class; standardized tolerances for tests; varied cleanup

Location:
issm/trunk-jpl
Files:
2 added
27 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/archive/arch.py

    r26358 r27417  
    1212    """
    1313
    14     nargs = len(args)
    15     if nargs % 2 != 0:
     14    if len(args) % 2 != 0:
    1615        raise ValueError('Incorrect number of arguments.')
    1716    # open file
  • issm/trunk-jpl/src/m/classes/SMBarma.m

    r27403 r27417  
    100100                                end
    101101                                if (any(isnan(md.smb.refelevation)==0) || numel(md.smb.refelevation)>1)
    102                md = checkfield(md,'fieldname','smb.refelevation','NaN',1,'Inf',1,'>=',0,'size',[1,md.smb.num_basins],'numel',md.smb.num_basins);
    103             end
     102                                        md = checkfield(md,'fieldname','smb.refelevation','NaN',1,'Inf',1,'>=',0,'size',[1,md.smb.num_basins],'numel',md.smb.num_basins);
     103                                end
    104104                                [nbas,nbins] = size(md.smb.lapserates);
    105105                                if (any(isnan(reshape(md.smb.lapserates,[1,nbas*nbins]))==0) || numel(md.smb.lapserates)>1)
     
    126126                        fielddisplay(self,'basin_id','basin number assigned to each element [unitless]');
    127127                        fielddisplay(self,'num_breaks','number of different breakpoints in the piecewise-polynomial (separating num_breaks+1 periods)');
    128          fielddisplay(self,'num_params','number of different parameters in the piecewise-polynomial (1:intercept only, 2:with linear trend, 3:with quadratic trend, etc.)');
    129          fielddisplay(self,'polynomialparams','coefficients for the polynomial (const,trend,quadratic,etc.),dim1 for basins,dim2 for periods,dim3 for orders');
    130          disp(sprintf('%51s  ex: polyparams=cat(3,intercepts,trendlinearcoefs,trendquadraticcoefs)',' '));
     128                        fielddisplay(self,'num_params','number of different parameters in the piecewise-polynomial (1:intercept only, 2:with linear trend, 3:with quadratic trend, etc.)');
     129                        fielddisplay(self,'polynomialparams','coefficients for the polynomial (const,trend,quadratic,etc.),dim1 for basins,dim2 for periods,dim3 for orders');
     130                        disp(sprintf('%51s  ex: polyparams=cat(3,intercepts,trendlinearcoefs,trendquadraticcoefs)',' '));
    131131                        fielddisplay(self,'datebreaks','dates at which the breakpoints in the piecewise polynomial occur (1 row per basin) [yr]');
    132132                        fielddisplay(self,'ar_order','order of the autoregressive model [unitless]');
     
    150150                        yts=md.constants.yts;
    151151                        nbas = md.smb.num_basins;
    152          nprm = md.smb.num_params;
    153          nper = md.smb.num_breaks+1;
     152                        nprm = md.smb.num_params;
     153                        nper = md.smb.num_breaks+1;
    154154
    155155                        templapserates    = md.smb.lapserates;
     
    180180
    181181                        % Scale the parameters %
    182          polyparamsScaled   = md.smb.polynomialparams;
    183          polyparams2dScaled = zeros(nbas,nper*nprm);
     182                        polyparamsScaled   = md.smb.polynomialparams;
     183                        polyparams2dScaled = zeros(nbas,nper*nprm);
    184184                        if(nprm>1)
    185185            % Case 3D %
  • issm/trunk-jpl/src/m/classes/SMBarma.py

    r27403 r27417  
    3030        self.requested_outputs = []
    3131
    32         nargs = len(args)
    33         if nargs == 0:
     32        if len(args) == 0:
    3433            self.setdefaultparameters()
    3534        else:
  • issm/trunk-jpl/src/m/classes/SMBcomponents.py

    r27415 r27417  
    2222        self.requested_outputs = []
    2323
    24         nargs = len(args)
    25         if nargs == 0:
     24        if len(args) == 0:
    2625            self.setdefaultparameters()
    2726        else:
  • issm/trunk-jpl/src/m/classes/SMBforcing.py

    r27414 r27417  
    2020        self.averaging = 0
    2121
    22         nargs = len(args)
    23         if nargs == 0:
     22        if len(args) == 0:
    2423            self.setdefaultparameters()
    2524        else:
  • issm/trunk-jpl/src/m/classes/SMBpddSicopolis.py

    r27415 r27417  
    3131        self.requested_outputs = []
    3232
    33         nargs = len(args)
    34         if nargs == 0:
     33        if len(args) == 0:
    3534            self.setdefaultparameters()
    3635        else:
  • issm/trunk-jpl/src/m/classes/debris.m

    r27324 r27417  
    66classdef debris
    77        properties (SetAccess=public)
    8                  spcthickness           = NaN;
    9                  min_thickness          = 0;
    10                  stabilization          = 0;
    11                  packingfraction        = 0;
    12                  removalmodel           = 0;
    13                  displacementmodel      = 0;
    14                  removal_slope_threshold= 0;
    15                  removal_stress_threshold=0;
    16                  vertex_pairing         = NaN;
    17                  requested_outputs      = {};
     8                spcthickness             = NaN;
     9                min_thickness            = 0;
     10                stabilization            = 0;
     11                packingfraction          = 0;
     12                removalmodel             = 0;
     13                displacementmodel        = 0;
     14                removal_slope_threshold  = 0;
     15                removal_stress_threshold = 0;
     16                vertex_pairing           = NaN;
     17                requested_outputs        = {};
    1818        end
    1919        methods (Static)
     
    2323                        % old fields must be recovered (make sure they are in the deprecated
    2424                        % model properties)
    25 
    26 
    2725
    2826                        if verLessThan('matlab','7.9'),
     
    8987
    9088                        %Slope threshold for removalmodel (1)
    91                         self.removal_slope_threshold=0;
    92                        
     89                        self.removal_slope_threshold=0;
     90
    9391                        %Stress threshold for removalmodel (2)
    9492                        self.removal_stress_threshold=0;
     
    10098
    10199                        %Early return
    102                         if ~ismember('MasstransportAnalysis',analyses) |  (strcmp(solution,'TransientSolution') & md.transient.isdebris==0), return; end
     100                        if ~ismember('MasstransportAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isdebris==0), return; end
    103101
    104102                        md = checkfield(md,'fieldname','debris.spcthickness');
     
    116114                end % }}}
    117115                function disp(self) % {{{
    118                         disp(sprintf('   Debris solution parameters:'));
     116                        disp(sprintf('   debris solution parameters:'));
    119117                        fielddisplay(self,'spcthickness','debris thickness constraints (NaN means no constraint) [m]');
    120118                        fielddisplay(self,'min_thickness','minimum debris thickness allowed [m]');
     
    132130                end % }}}
    133131                function marshall(self,prefix,md,fid) % {{{
    134 
    135                         yts=md.constants.yts;
    136 
    137132                        WriteData(fid,prefix,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    138133                        WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double');
  • issm/trunk-jpl/src/m/classes/dslmme.py

    r26358 r27417  
    1818        self.sea_water_pressure_at_sea_floor = [] #Corresponds to bpo field in CMIP5 archives. Specified as a spatio-temporally variable quantity (in m equivalent, not in Pa!) for each ensemble.
    1919
    20         nargs = len(args)
    21 
    22         if nargs == 0:
     20        if len(args) == 0:
    2321            self.setdefaultparameters()
    2422        else:
  • issm/trunk-jpl/src/m/classes/frontalforcings.py

    r24213 r27417  
    1515    def __init__(self):  # {{{
    1616        self.meltingrate = float('NaN')
     17        self.ablationrate = float('NaN')
    1718
    18     #set defaults
    1919        self.setdefaultparameters()
    2020    #}}}
    2121
    2222    def __repr__(self):  # {{{
    23         string = '   Frontalforcings parameters:'
    24         string = "%s\n%s" % (string, fielddisplay(self, 'meltingrate', 'melting rate at given location [m / a]'))
     23        s = '   Frontalforcings parameters:'
     24        s += '{}\n'.format(fielddisplay(self, 'meltingrate', 'melting rate at given location [m/a]'))
     25        s += '{}\n'.format(fielddisplay(self, 'ablationrate', 'frontal ablation rate at given location [m/a], it contains both calving and melting'))
    2526
    26         return string
     27        return s
    2728    #}}}
    2829
    2930    def extrude(self, md):  # {{{
    3031        self.meltingrate = project3d(md, 'vector', self.meltingrate, 'type', 'node')
     32        self.ablationrate = project3d(md, 'vector', self.ablationrate, 'type', 'node')
    3133        return self
    3234    #}}}
    3335
    3436    def setdefaultparameters(self):  # {{{
     37        self.meltingrate = float('NaN')
     38        self.ablationrate = float('NaN')
    3539        return self
    3640    #}}}
     
    4246
    4347        md = checkfield(md, 'fieldname', 'frontalforcings.meltingrate', 'NaN', 1, 'Inf', 1, 'timeseries', 1, '>=', 0)
     48        if not np.isnan(md.frontalforcings.ablationrate):
     49            md = checkfield(md, 'fieldname', 'frontalforcings.ablationrate', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
    4450        return md
    4551    # }}}
     
    4955        WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 1, 'format', 'Integer')
    5056        WriteData(fid, prefix, 'object', self, 'fieldname', 'meltingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts)
     57        if not np.isnan(md.frontalforcings.ablationrate):
     58            WriteData(fid, prefix, 'object', self, 'fieldname', 'ablationrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts)
    5159    # }}}
  • issm/trunk-jpl/src/m/classes/levelset.py

    r26421 r27417  
    5656
    5757        md = checkfield(md, 'fieldname', 'levelset.spclevelset', 'Inf', 1, 'timeseries', 1)
    58         md = checkfield(md, 'fieldname', 'levelset.stabilization', 'numel', [1], 'values', [0, 1, 2, 5])
     58        md = checkfield(md, 'fieldname', 'levelset.stabilization', 'numel', [1], 'values', [0, 1, 2, 5, 6])
    5959        md = checkfield(md, 'fieldname', 'levelset.kill_icebergs', 'numel', [1], 'values', [0, 1])
    6060        md = checkfield(md, 'fieldname', 'levelset.migration_max', 'numel', [1], 'NaN', 1, 'Inf', 1, '>', 0)
  • issm/trunk-jpl/src/m/classes/linearbasalforcingsarma.py

    r27318 r27417  
    3131        self.geothermalflux = np.nan
    3232
    33         nargs = len(args)
    34         if nargs == 0:
     33        if len(args) == 0:
    3534            self.setdefaultparameters()
    3635        else:
  • issm/trunk-jpl/src/m/classes/lovenumbers.m

    r26828 r27417  
    1111
    1212                %loading love numbers:
    13                 h               = []; %provided by PREM model
    14                 k               = []; %idem
    15                 l               = []; %idem
     13                h             = []; %provided by PREM model
     14                k             = []; %idem
     15                l             = []; %idem
    1616               
    1717                %tidal love numbers for computing rotational feedback:
     
    2424
    2525                %time/frequency for visco-elastic love numbers
    26                 timefreq    = [];
    27                 istime      = 1;
     26                timefreq      = [];
     27                istime        = 1;
    2828
    2929        end
     
    6565
    6666                        %secular fluid love number:
    67                         self.tk2secular=0.942; 
     67                        self.tk2secular=0.942;
    6868
    6969                        self.pmtf_colinear=0.0;
    7070                        self.pmtf_ortho=0.0;
    7171                        if maxdeg>=2
    72                                 self.pmtf_colinear= (1.0+self.k(3,:))/(1.0-self.tk(3,:)/self.tk2secular); %valid only for elastic regime, not viscous. Also neglects chandler wobble
    73                                 self.pmtf_ortho= 0.0;
     72                                self.pmtf_colinear=(1.0+self.k(3,:))/(1.0-self.tk(3,:)/self.tk2secular); %valid only for elastic regime, not viscous. Also neglects chandler wobble
     73                                self.pmtf_ortho=0.0;
    7474                        end
    7575                        %time:
  • issm/trunk-jpl/src/m/classes/lovenumbers.py

    r26840 r27417  
    3131        self.pmtf_colinear = []
    3232        self.pmtf_ortho = []
    33         pmtf_colinear   = []
    34         pmtf_ortho      = []
    3533
    3634        # Time/frequency for visco-elastic love numbers
     
    7371        # Secular fluid love number
    7472        self.tk2secular = 0.942
    75         self.pmtf_colinear=0.0
    76         self.pmtf_ortho=0.0
    77         if maxdeg>=2:
    78             self.pmtf_colinear= (1.0+self.k[3-1,:])/(1.0-self.tk[3-1,:]/self.tk2secular) #valid only for elastic regime, not viscous. Also neglects chandler wobble
    79             self.pmtf_ortho= 0.0
    8073
    8174        self.pmtf_colinear = np.array([0.0]).reshape(-1, 1)
     
    131124        WriteData(fid, prefix, 'object', self, 'fieldname', 'tk', 'name', 'md.solidearth.lovenumbers.tk', 'format', 'DoubleMat', 'mattype', 1)
    132125        WriteData(fid, prefix, 'object', self, 'fieldname', 'tl', 'name', 'md.solidearth.lovenumbers.tl', 'format', 'DoubleMat', 'mattype', 1)
    133         WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_colinear', 'name', 'md.solidearth.lovenumbers.pmtf_colinear', 'format', 'DoubleMat', 'mattype', 1)
    134         WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_ortho', 'name', 'md.solidearth.lovenumbers.pmtf_ortho', 'format', 'DoubleMat', 'mattype', 1)
     126        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_colinear','name','md.solidearth.lovenumbers.pmtf_colinear','format','DoubleMat','mattype',1)
     127        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_ortho','name','md.solidearth.lovenumbers.pmtf_ortho','format','DoubleMat','mattype',1)
    135128        WriteData(fid, prefix, 'object', self, 'data', self.tk2secular, 'fieldname', 'lovenumbers.tk2secular', 'format', 'Double')
    136         WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_colinear','name','md.solidearth.lovenumbers.pmtf_colinear','format','DoubleMat','mattype',1);
    137         WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_ortho','name','md.solidearth.lovenumbers.pmtf_ortho','format','DoubleMat','mattype',1);
    138129
    139130        if (self.istime):
     
    144135        WriteData(fid, prefix, 'object', self, 'fieldname', 'timefreq', 'name', 'md.solidearth.lovenumbers.timefreq', 'format', 'DoubleMat', 'mattype', 1, 'scale', scale);
    145136    #}}}
    146  
     137
    147138    def extrude(self, md):  #{{{
    148139        return
    149 #}}}
     140    #}}}
  • issm/trunk-jpl/src/m/classes/mesh3dsurface.py

    r25499 r27417  
    4040
    4141        nargs = len(args)
    42         if not nargs:
     42        if nargs == 0:
    4343            self.setdefaultparameters()
    4444        elif nargs == 1:
  • issm/trunk-jpl/src/m/classes/model.m

    r27359 r27417  
    3535                groundingline    = 0;
    3636                hydrology        = 0;
    37                 debris          = 0;
     37                debris          = 0;
    3838                masstransport    = 0;
    3939                thermal          = 0;
     
    214214                %}}}
    215215                function disp(self) % {{{
    216                         disp(sprintf('%19s: %-22s -- %s','mesh'            ,['[1x1 ' class(self.mesh) ']'],'mesh properties'));
    217                         disp(sprintf('%19s: %-22s -- %s','mask'            ,['[1x1 ' class(self.mask) ']'],'defines grounded and floating elements'));
    218                         disp(sprintf('%19s: %-22s -- %s','geometry'        ,['[1x1 ' class(self.geometry) ']'],'surface elevation, bedrock topography, ice thickness,...'));
    219                         disp(sprintf('%19s: %-22s -- %s','constants'       ,['[1x1 ' class(self.constants) ']'],'physical constants'));
    220                         disp(sprintf('%19s: %-22s -- %s','smb'             ,['[1x1 ' class(self.smb) ']'],'surface mass balance'));
    221                         disp(sprintf('%19s: %-22s -- %s','basalforcings'   ,['[1x1 ' class(self.basalforcings) ']'],'bed forcings'));
    222                         disp(sprintf('%19s: %-22s -- %s','materials'       ,['[1x1 ' class(self.materials) ']'],'material properties'));
    223                         disp(sprintf('%19s: %-22s -- %s','damage'          ,['[1x1 ' class(self.damage) ']'],'parameters for damage evolution solution'));
    224                         disp(sprintf('%19s: %-22s -- %s','friction'        ,['[1x1 ' class(self.friction) ']'],'basal friction/drag properties'));
    225                         disp(sprintf('%19s: %-22s -- %s','flowequation'    ,['[1x1 ' class(self.flowequation) ']'],'flow equations'));
    226                         disp(sprintf('%19s: %-22s -- %s','timestepping'    ,['[1x1 ' class(self.timestepping) ']'],'time stepping for transient models'));
    227                         disp(sprintf('%19s: %-22s -- %s','initialization'  ,['[1x1 ' class(self.initialization) ']'],'initial guess/state'));
    228                         disp(sprintf('%19s: %-22s -- %s','rifts'           ,['[1x1 ' class(self.rifts) ']'],'rifts properties'));
    229                         disp(sprintf('%19s: %-22s -- %s','solidearth'      ,['[1x1 ' class(self.solidearth) ']'],'solidearth inputs and settings'));
    230                         disp(sprintf('%19s: %-22s -- %s','dsl'             ,['[1x1 ' class(self.dsl) ']'],'dynamic sea-level '));
    231                         disp(sprintf('%19s: %-22s -- %s','debug'           ,['[1x1 ' class(self.debug) ']'],'debugging tools (valgrind, gprof)'));
    232                         disp(sprintf('%19s: %-22s -- %s','verbose'         ,['[1x1 ' class(self.verbose) ']'],'verbosity level in solve'));
    233                         disp(sprintf('%19s: %-22s -- %s','settings'        ,['[1x1 ' class(self.settings) ']'],'settings properties'));
    234                         disp(sprintf('%19s: %-22s -- %s','toolkits'        ,['[1x1 ' class(self.toolkits) ']'],'PETSc options for each solution'));
    235                         disp(sprintf('%19s: %-22s -- %s','cluster'         ,['[1x1 ' class(self.cluster) ']'],'cluster parameters (number of CPUs...)'));
    236                         disp(sprintf('%19s: %-22s -- %s','balancethickness',['[1x1 ' class(self.balancethickness) ']'],'parameters for balancethickness solution'));
    237                         disp(sprintf('%19s: %-22s -- %s','stressbalance'   ,['[1x1 ' class(self.stressbalance) ']'],'parameters for stressbalance solution'));
    238                         disp(sprintf('%19s: %-22s -- %s','groundingline'   ,['[1x1 ' class(self.groundingline) ']'],'parameters for groundingline solution'));
    239                         disp(sprintf('%19s: %-22s -- %s','hydrology'       ,['[1x1 ' class(self.hydrology) ']'],'parameters for hydrology solution'));
    240                         disp(sprintf('%19s: %-22s -- %s','debris'          ,['[1x1 ' class(self.debris) ']'],'parameters for debris solution'));
    241                         disp(sprintf('%19s: %-22s -- %s','masstransport'   ,['[1x1 ' class(self.masstransport) ']'],'parameters for masstransport solution'));
    242                         disp(sprintf('%19s: %-22s -- %s','thermal'         ,['[1x1 ' class(self.thermal) ']'],'parameters for thermal solution'));
    243                         disp(sprintf('%19s: %-22s -- %s','steadystate'     ,['[1x1 ' class(self.steadystate) ']'],'parameters for steadystate solution'));
    244                         disp(sprintf('%19s: %-22s -- %s','transient'       ,['[1x1 ' class(self.transient) ']'],'parameters for transient solution'));
    245                         disp(sprintf('%19s: %-22s -- %s','levelset'        ,['[1x1 ' class(self.levelset) ']'],'parameters for moving boundaries (level-set method)'));
    246                         disp(sprintf('%19s: %-22s -- %s','calving'         ,['[1x1 ' class(self.calving) ']'],'parameters for calving'));
    247                         disp(sprintf('%19s: %-22s -- %s','frontalforcings' ,['[1x1 ' class(self.frontalforcings) ']'],'parameters for frontalforcings'));
    248                         disp(sprintf('%19s: %-22s -- %s','esa'             ,['[1x1 ' class(self.esa) ']'],'parameters for elastic adjustment solution'));
    249                         disp(sprintf('%19s: %-22s -- %s','love'            ,['[1x1 ' class(self.love) ']'],'parameters for love solution'));
    250                         disp(sprintf('%19s: %-22s -- %s','sampling'        ,['[1x1 ' class(self.sampling) ']'],'parameters for stochastic sampler'));
    251                         disp(sprintf('%19s: %-22s -- %s','autodiff'        ,['[1x1 ' class(self.autodiff) ']'],'automatic differentiation parameters'));
    252                         disp(sprintf('%19s: %-22s -- %s','inversion'       ,['[1x1 ' class(self.inversion) ']'],'parameters for inverse methods'));
    253                         disp(sprintf('%19s: %-22s -- %s','qmu'             ,['[1x1 ' class(self.qmu) ']'],'Dakota properties'));
    254                         disp(sprintf('%19s: %-22s -- %s','amr'             ,['[1x1 ' class(self.amr) ']'],'adaptive mesh refinement properties'));
    255                         disp(sprintf('%19s: %-22s -- %s','outputdefinition',['[1x1 ' class(self.outputdefinition) ']'],'output definition'));
    256                         disp(sprintf('%19s: %-22s -- %s','results'         ,['[1x1 ' class(self.results) ']'],'model results'));
    257                         disp(sprintf('%19s: %-22s -- %s','radaroverlay'    ,['[1x1 ' class(self.radaroverlay) ']'],'radar image for plot overlay'));
    258                         disp(sprintf('%19s: %-22s -- %s','miscellaneous'   ,['[1x1 ' class(self.miscellaneous) ']'],'miscellaneous fields'));
    259                         disp(sprintf('%19s: %-22s -- %s','stochasticforcing',['[1x1 ' class(self.stochasticforcing) ']'],'stochasticity applied to model forcings'));
     216                        disp(sprintf('%19s: %-23s -- %s','mesh'            ,['[1x1 ' class(self.mesh) ']'],'mesh properties'));
     217                        disp(sprintf('%19s: %-23s -- %s','mask'            ,['[1x1 ' class(self.mask) ']'],'defines grounded and floating elements'));
     218                        disp(sprintf('%19s: %-23s -- %s','geometry'        ,['[1x1 ' class(self.geometry) ']'],'surface elevation, bedrock topography, ice thickness,...'));
     219                        disp(sprintf('%19s: %-23s -- %s','constants'       ,['[1x1 ' class(self.constants) ']'],'physical constants'));
     220                        disp(sprintf('%19s: %-23s -- %s','smb'             ,['[1x1 ' class(self.smb) ']'],'surface mass balance'));
     221                        disp(sprintf('%19s: %-23s -- %s','basalforcings'   ,['[1x1 ' class(self.basalforcings) ']'],'bed forcings'));
     222                        disp(sprintf('%19s: %-23s -- %s','materials'       ,['[1x1 ' class(self.materials) ']'],'material properties'));
     223                        disp(sprintf('%19s: %-23s -- %s','damage'          ,['[1x1 ' class(self.damage) ']'],'parameters for damage evolution solution'));
     224                        disp(sprintf('%19s: %-23s -- %s','friction'        ,['[1x1 ' class(self.friction) ']'],'basal friction/drag properties'));
     225                        disp(sprintf('%19s: %-23s -- %s','flowequation'    ,['[1x1 ' class(self.flowequation) ']'],'flow equations'));
     226                        disp(sprintf('%19s: %-23s -- %s','timestepping'    ,['[1x1 ' class(self.timestepping) ']'],'time stepping for transient models'));
     227                        disp(sprintf('%19s: %-23s -- %s','initialization'  ,['[1x1 ' class(self.initialization) ']'],'initial guess/state'));
     228                        disp(sprintf('%19s: %-23s -- %s','rifts'           ,['[1x1 ' class(self.rifts) ']'],'rifts properties'));
     229                        disp(sprintf('%19s: %-23s -- %s','solidearth'      ,['[1x1 ' class(self.solidearth) ']'],'solidearth inputs and settings'));
     230                        disp(sprintf('%19s: %-23s -- %s','dsl'             ,['[1x1 ' class(self.dsl) ']'],'dynamic sea-level '));
     231                        disp(sprintf('%19s: %-23s -- %s','debug'           ,['[1x1 ' class(self.debug) ']'],'debugging tools (valgrind, gprof)'));
     232                        disp(sprintf('%19s: %-23s -- %s','verbose'         ,['[1x1 ' class(self.verbose) ']'],'verbosity level in solve'));
     233                        disp(sprintf('%19s: %-23s -- %s','settings'        ,['[1x1 ' class(self.settings) ']'],'settings properties'));
     234                        disp(sprintf('%19s: %-23s -- %s','toolkits'        ,['[1x1 ' class(self.toolkits) ']'],'PETSc options for each solution'));
     235                        disp(sprintf('%19s: %-23s -- %s','cluster'         ,['[1x1 ' class(self.cluster) ']'],'cluster parameters (number of CPUs...)'));
     236                        disp(sprintf('%19s: %-23s -- %s','balancethickness',['[1x1 ' class(self.balancethickness) ']'],'parameters for balancethickness solution'));
     237                        disp(sprintf('%19s: %-23s -- %s','stressbalance'   ,['[1x1 ' class(self.stressbalance) ']'],'parameters for stressbalance solution'));
     238                        disp(sprintf('%19s: %-23s -- %s','groundingline'   ,['[1x1 ' class(self.groundingline) ']'],'parameters for groundingline solution'));
     239                        disp(sprintf('%19s: %-23s -- %s','hydrology'       ,['[1x1 ' class(self.hydrology) ']'],'parameters for hydrology solution'));
     240                        disp(sprintf('%19s: %-23s -- %s','debris'          ,['[1x1 ' class(self.debris) ']'],'parameters for debris solution'));
     241                        disp(sprintf('%19s: %-23s -- %s','masstransport'   ,['[1x1 ' class(self.masstransport) ']'],'parameters for masstransport solution'));
     242                        disp(sprintf('%19s: %-23s -- %s','thermal'         ,['[1x1 ' class(self.thermal) ']'],'parameters for thermal solution'));
     243                        disp(sprintf('%19s: %-23s -- %s','steadystate'     ,['[1x1 ' class(self.steadystate) ']'],'parameters for steadystate solution'));
     244                        disp(sprintf('%19s: %-23s -- %s','transient'       ,['[1x1 ' class(self.transient) ']'],'parameters for transient solution'));
     245                        disp(sprintf('%19s: %-23s -- %s','levelset'        ,['[1x1 ' class(self.levelset) ']'],'parameters for moving boundaries (level-set method)'));
     246                        disp(sprintf('%19s: %-23s -- %s','calving'         ,['[1x1 ' class(self.calving) ']'],'parameters for calving'));
     247                        disp(sprintf('%19s: %-23s -- %s','frontalforcings' ,['[1x1 ' class(self.frontalforcings) ']'],'parameters for frontalforcings'));
     248                        disp(sprintf('%19s: %-23s -- %s','esa'             ,['[1x1 ' class(self.esa) ']'],'parameters for elastic adjustment solution'));
     249                        disp(sprintf('%19s: %-23s -- %s','love'            ,['[1x1 ' class(self.love) ']'],'parameters for love solution'));
     250                        disp(sprintf('%19s: %-23s -- %s','sampling'        ,['[1x1 ' class(self.sampling) ']'],'parameters for stochastic sampler'));
     251                        disp(sprintf('%19s: %-23s -- %s','autodiff'        ,['[1x1 ' class(self.autodiff) ']'],'automatic differentiation parameters'));
     252                        disp(sprintf('%19s: %-23s -- %s','inversion'       ,['[1x1 ' class(self.inversion) ']'],'parameters for inverse methods'));
     253                        disp(sprintf('%19s: %-23s -- %s','qmu'             ,['[1x1 ' class(self.qmu) ']'],'Dakota properties'));
     254                        disp(sprintf('%19s: %-23s -- %s','amr'             ,['[1x1 ' class(self.amr) ']'],'adaptive mesh refinement properties'));
     255                        disp(sprintf('%19s: %-23s -- %s','outputdefinition',['[1x1 ' class(self.outputdefinition) ']'],'output definition'));
     256                        disp(sprintf('%19s: %-23s -- %s','results'         ,['[1x1 ' class(self.results) ']'],'model results'));
     257                        disp(sprintf('%19s: %-23s -- %s','radaroverlay'    ,['[1x1 ' class(self.radaroverlay) ']'],'radar image for plot overlay'));
     258                        disp(sprintf('%19s: %-23s -- %s','miscellaneous'   ,['[1x1 ' class(self.miscellaneous) ']'],'miscellaneous fields'));
     259                        disp(sprintf('%19s: %-23s -- %s','stochasticforcing',['[1x1 ' class(self.stochasticforcing) ']'],'stochasticity applied to model forcings'));
    260260                end % }}}
    261261                function md = setdefaultparameters(md,planet) % {{{
     
    286286                        md.stressbalance    = stressbalance();
    287287                        md.hydrology        = hydrologyshreve();
    288                         md.debris           = debris();
     288                        md.debris           = debris();
    289289                        md.masstransport    = masstransport();
    290290                        md.thermal          = thermal();
     
    959959                        md2.mesh.vertexonboundary = zeros(md2.mesh.numberofvertices,1); md2.mesh.vertexonboundary(md2.mesh.segments(:,1:2)) = 1;
    960960
    961                         %Deal with boudary
     961                        %Deal with boundary
    962962                        md2.mesh.vertexonboundary = [md.mesh.vertexonboundary;sum(md.mesh.vertexonboundary(edges),2)==2];
    963963                        md2.mesh.elementconnectivity=bamgmesh_out.ElementConnectivity;
  • issm/trunk-jpl/src/m/classes/model.py

    r27359 r27417  
    4545from hydrologypism import hydrologypism
    4646from hydrologyshakti import hydrologyshakti
     47from debris import debris
    4748from masstransport import masstransport
    4849from thermal import thermal
     
    9798        self.dsl = None
    9899        self.solidearth = None
    99 
    100100        self.debug = None
    101101        self.verbose = None
     
    103103        self.toolkits = None
    104104        self.cluster = None
    105 
    106105        self.balancethickness = None
    107106        self.stressbalance = None
    108107        self.groundingline = None
    109108        self.hydrology = None
     109        self.debris = None
    110110        self.masstransport = None
    111111        self.thermal = None
     
    118118        self.esa = None
    119119        self.sampling = None
    120 
    121120        self.autodiff = None
    122121        self.inversion = None
     
    143142        #   already converted <class>.__repr__ method for examples)
    144143        #
    145         s = "%19s: %-22s -- %s" % ("mesh", "[%s %s]" % ("1x1", obj.mesh.__class__.__name__), "mesh properties")
    146         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("mask", "[%s %s]" % ("1x1", obj.mask.__class__.__name__), "defines grounded and floating elements"))
    147         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("geometry", "[%s %s]" % ("1x1", obj.geometry.__class__.__name__), "surface elevation, bedrock topography, ice thickness, ..."))
    148         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("constants", "[%s %s]" % ("1x1", obj.constants.__class__.__name__), "physical constants"))
    149         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("smb", "[%s %s]" % ("1x1", obj.smb.__class__.__name__), "surface mass balance"))
    150         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("basalforcings", "[%s %s]" % ("1x1", obj.basalforcings.__class__.__name__), "bed forcings"))
    151         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("materials", "[%s %s]" % ("1x1", obj.materials.__class__.__name__), "material properties"))
    152         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("damage", "[%s %s]" % ("1x1", obj.damage.__class__.__name__), "damage propagation laws"))
    153         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("friction", "[%s %s]" % ("1x1", obj.friction.__class__.__name__), "basal friction / drag properties"))
    154         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("flowequation", "[%s %s]" % ("1x1", obj.flowequation.__class__.__name__), "flow equations"))
    155         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("timestepping", "[%s %s]" % ("1x1", obj.timestepping.__class__.__name__), "time stepping for transient models"))
    156         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("initialization", "[%s %s]" % ("1x1", obj.initialization.__class__.__name__), "initial guess / state"))
    157         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("rifts", "[%s %s]" % ("1x1", obj.rifts.__class__.__name__), "rifts properties"))
    158         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("solidearth", "[%s %s]" % ("1x1", obj.solidearth.__class__.__name__), "solidearth inputs and settings"))
    159         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("dsl", "[%s %s]" % ("1x1", obj.dsl.__class__.__name__), "dynamic sea level"))
    160         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("debug", "[%s %s]" % ("1x1", obj.debug.__class__.__name__), "debugging tools (valgrind, gprof)"))
    161         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("verbose", "[%s %s]" % ("1x1", obj.verbose.__class__.__name__), "verbosity level in solve"))
    162         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("settings", "[%s %s]" % ("1x1", obj.settings.__class__.__name__), "settings properties"))
    163         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("toolkits", "[%s %s]" % ("1x1", obj.toolkits.__class__.__name__), "PETSc options for each solution"))
    164         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("cluster", "[%s %s]" % ("1x1", obj.cluster.__class__.__name__), "cluster parameters (number of CPUs...)"))
    165         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("balancethickness", "[%s %s]" % ("1x1", obj.balancethickness.__class__.__name__), "parameters for balancethickness solution"))
    166         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("stressbalance", "[%s %s]" % ("1x1", obj.stressbalance.__class__.__name__), "parameters for stressbalance solution"))
    167         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("groundingline", "[%s %s]" % ("1x1", obj.groundingline.__class__.__name__), "parameters for groundingline solution"))
    168         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("hydrology", "[%s %s]" % ("1x1", obj.hydrology.__class__.__name__), "parameters for hydrology solution"))
    169         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("masstransport", "[%s %s]" % ("1x1", obj.masstransport.__class__.__name__), "parameters for masstransport solution"))
    170         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("thermal", "[%s %s]" % ("1x1", obj.thermal.__class__.__name__), "parameters for thermal solution"))
    171         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("steadystate", "[%s %s]" % ("1x1", obj.steadystate.__class__.__name__), "parameters for steadystate solution"))
    172         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("transient", "[%s %s]" % ("1x1", obj.transient.__class__.__name__), "parameters for transient solution"))
    173         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("levelset", "[%s %s]" % ("1x1", obj.levelset.__class__.__name__), "parameters for moving boundaries (level-set method)"))
    174         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("calving", "[%s %s]" % ("1x1", obj.calving.__class__.__name__), "parameters for calving"))
    175         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("frontalforcings", "[%s %s]" % ("1x1", obj.frontalforcings.__class__.__name__), "parameters for frontalforcings"))
    176         s = "%s\n%s" % (s, '%19s: %-22s -- %s' % ("esa", "[%s %s]" % ("1x1", obj.esa.__class__.__name__), "parameters for elastic adjustment solution"))
    177         s = "%s\n%s" % (s, '%19s: %-22s -- %s' % ("sampling", "[%s %s]" % ("1x1", obj.sampling.__class__.__name__), "parameters for stochastic sampler"))
    178         s = "%s\n%s" % (s, '%19s: %-22s -- %s' % ("love", "[%s %s]" % ("1x1", obj.love.__class__.__name__), "parameters for love solution"))
    179         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("autodiff", "[%s %s]" % ("1x1", obj.autodiff.__class__.__name__), "automatic differentiation parameters"))
    180         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("inversion", "[%s %s]" % ("1x1", obj.inversion.__class__.__name__), "parameters for inverse methods"))
    181         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("qmu", "[%s %s]" % ("1x1", obj.qmu.__class__.__name__), "Dakota properties"))
    182         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("amr", "[%s %s]" % ("1x1", obj.amr.__class__.__name__), "adaptive mesh refinement properties"))
    183         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("outputdefinition", "[%s %s]" % ("1x1", obj.outputdefinition.__class__.__name__), "output definition"))
    184         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("results", "[%s %s]" % ("1x1", obj.results.__class__.__name__), "model results"))
    185         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("radaroverlay", "[%s %s]" % ("1x1", obj.radaroverlay.__class__.__name__), "radar image for plot overlay"))
    186         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("miscellaneous", "[%s %s]" % ("1x1", obj.miscellaneous.__class__.__name__), "miscellaneous fields"))
    187         s = "%s\n%s" % (s, "%19s: %-22s -- %s" % ("stochasticforcing", "[%s %s]" % ("1x1", obj.stochasticforcing.__class__.__name__), "stochasticity applied to model forcings"))
     144        s = '%19s: %-23s -- %s' % ('mesh', '[%s %s]' % ('1x1', obj.mesh.__class__.__name__), 'mesh properties')
     145        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('mask', '[%s %s]' % ('1x1', obj.mask.__class__.__name__), 'defines grounded and floating elements'))
     146        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('geometry', '[%s %s]' % ('1x1', obj.geometry.__class__.__name__), 'surface elevation, bedrock topography, ice thickness, ...'))
     147        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('constants', '[%s %s]' % ('1x1', obj.constants.__class__.__name__), 'physical constants'))
     148        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('smb', '[%s %s]' % ('1x1', obj.smb.__class__.__name__), 'surface mass balance'))
     149        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('basalforcings', '[%s %s]' % ('1x1', obj.basalforcings.__class__.__name__), 'bed forcings'))
     150        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('materials', '[%s %s]' % ('1x1', obj.materials.__class__.__name__), 'material properties'))
     151        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('damage', '[%s %s]' % ('1x1', obj.damage.__class__.__name__), 'damage propagation laws'))
     152        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('friction', '[%s %s]' % ('1x1', obj.friction.__class__.__name__), 'basal friction / drag properties'))
     153        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('flowequation', '[%s %s]' % ('1x1', obj.flowequation.__class__.__name__), 'flow equations'))
     154        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('timestepping', '[%s %s]' % ('1x1', obj.timestepping.__class__.__name__), 'time stepping for transient models'))
     155        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('initialization', '[%s %s]' % ('1x1', obj.initialization.__class__.__name__), 'initial guess / state'))
     156        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('rifts', '[%s %s]' % ('1x1', obj.rifts.__class__.__name__), 'rifts properties'))
     157        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('solidearth', '[%s %s]' % ('1x1', obj.solidearth.__class__.__name__), 'solidearth inputs and settings'))
     158        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('dsl', '[%s %s]' % ('1x1', obj.dsl.__class__.__name__), 'dynamic sea level'))
     159        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('debug', '[%s %s]' % ('1x1', obj.debug.__class__.__name__), 'debugging tools (valgrind, gprof)'))
     160        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('verbose', '[%s %s]' % ('1x1', obj.verbose.__class__.__name__), 'verbosity level in solve'))
     161        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('settings', '[%s %s]' % ('1x1', obj.settings.__class__.__name__), 'settings properties'))
     162        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('toolkits', '[%s %s]' % ('1x1', obj.toolkits.__class__.__name__), 'PETSc options for each solution'))
     163        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('cluster', '[%s %s]' % ('1x1', obj.cluster.__class__.__name__), 'cluster parameters (number of CPUs...)'))
     164        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('balancethickness', '[%s %s]' % ('1x1', obj.balancethickness.__class__.__name__), 'parameters for balancethickness solution'))
     165        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('stressbalance', '[%s %s]' % ('1x1', obj.stressbalance.__class__.__name__), 'parameters for stressbalance solution'))
     166        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('groundingline', '[%s %s]' % ('1x1', obj.groundingline.__class__.__name__), 'parameters for groundingline solution'))
     167        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('hydrology', '[%s %s]' % ('1x1', obj.hydrology.__class__.__name__), 'parameters for hydrology solution'))
     168        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('masstransport', '[%s %s]' % ('1x1', obj.masstransport.__class__.__name__), 'parameters for masstransport solution'))
     169        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('thermal', '[%s %s]' % ('1x1', obj.thermal.__class__.__name__), 'parameters for thermal solution'))
     170        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('steadystate', '[%s %s]' % ('1x1', obj.steadystate.__class__.__name__), 'parameters for steadystate solution'))
     171        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('transient', '[%s %s]' % ('1x1', obj.transient.__class__.__name__), 'parameters for transient solution'))
     172        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('levelset', '[%s %s]' % ('1x1', obj.levelset.__class__.__name__), 'parameters for moving boundaries (level-set method)'))
     173        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('calving', '[%s %s]' % ('1x1', obj.calving.__class__.__name__), 'parameters for calving'))
     174        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('frontalforcings', '[%s %s]' % ('1x1', obj.frontalforcings.__class__.__name__), 'parameters for frontalforcings'))
     175        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('esa', '[%s %s]' % ('1x1', obj.esa.__class__.__name__), 'parameters for elastic adjustment solution'))
     176        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('sampling', '[%s %s]' % ('1x1', obj.sampling.__class__.__name__), 'parameters for stochastic sampler'))
     177        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('love', '[%s %s]' % ('1x1', obj.love.__class__.__name__), 'parameters for love solution'))
     178        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('autodiff', '[%s %s]' % ('1x1', obj.autodiff.__class__.__name__), 'automatic differentiation parameters'))
     179        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('inversion', '[%s %s]' % ('1x1', obj.inversion.__class__.__name__), 'parameters for inverse methods'))
     180        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('qmu', '[%s %s]' % ('1x1', obj.qmu.__class__.__name__), 'Dakota properties'))
     181        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('amr', '[%s %s]' % ('1x1', obj.amr.__class__.__name__), 'adaptive mesh refinement properties'))
     182        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('outputdefinition', '[%s %s]' % ('1x1', obj.outputdefinition.__class__.__name__), 'output definition'))
     183        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('results', '[%s %s]' % ('1x1', obj.results.__class__.__name__), 'model results'))
     184        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('radaroverlay', '[%s %s]' % ('1x1', obj.radaroverlay.__class__.__name__), 'radar image for plot overlay'))
     185        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('miscellaneous', '[%s %s]' % ('1x1', obj.miscellaneous.__class__.__name__), 'miscellaneous fields'))
     186        s = '%s\n%s' % (s, '%19s: %-23s -- %s' % ('stochasticforcing', '[%s %s]' % ('1x1', obj.stochasticforcing.__class__.__name__), 'stochasticity applied to model forcings'))
    188187        return s
    189188    #}}}
     
    216215            'groundingline',
    217216            'hydrology',
     217            'debris',
    218218            'masstransport',
    219219            'thermal',
     
    264264        self.stressbalance = stressbalance()
    265265        self.hydrology = hydrologyshreve()
     266        self.debris = debris()
    266267        self.masstransport = masstransport()
    267268        self.thermal = thermal()
     
    597598        #some checks on list of arguments
    598599        if len(args) > 3 or len(args) < 1:
    599             raise RuntimeError("extrude error message")
     600            raise RuntimeError('extrude error message')
    600601
    601602        #Extrude the mesh
     
    603604            clist = args[0]
    604605            if any(clist < 0) or any(clist > 1):
    605                 raise TypeError("extrusioncoefficients must be between 0 and 1")
     606                raise TypeError('extrusioncoefficients must be between 0 and 1')
    606607            clist.extend([0., 1.])
    607608            clist.sort()
     
    611612        elif len(args) == 2:  #one polynomial law
    612613            if args[1] <= 0:
    613                 raise TypeError("extrusionexponent must be >= 0")
     614                raise TypeError('extrusionexponent must be >= 0')
    614615            numlayers = args[0]
    615616            extrusionlist = (np.arange(0., float(numlayers - 1) + 1., 1.) / float(numlayers - 1))**args[1]
     
    621622
    622623            if args[1] <= 0 or args[2] <= 0:
    623                 raise TypeError("lower and upper extrusionexponents must be >= 0")
     624                raise TypeError('lower and upper extrusionexponents must be >= 0')
    624625
    625626            lowerextrusionlist = (np.arange(0., 1. + 2. / float(numlayers - 1), 2. / float(numlayers - 1)))**lowerexp / 2.
     
    628629
    629630        if numlayers < 2:
    630             raise TypeError("number of layers should be at least 2")
     631            raise TypeError('number of layers should be at least 2')
    631632        if md.mesh.__class__.__name__ == 'mesh3dprisms':
    632             raise TypeError("Cannot extrude a 3d mesh (extrude cannot be called more than once)")
     633            raise TypeError('Cannot extrude a 3d mesh (extrude cannot be called more than once)')
    633634
    634635        #Initialize with the 2d mesh
     
    732733        md.frontalforcings.extrude(md)
    733734        md.hydrology.extrude(md)
     735        md.debris.extrude(md)
    734736        md.solidearth.extrude(md)
    735737        md.dsl.extrude(md)
     
    774776        # Check that the model is really a 3d model
    775777        if md.mesh.elementtype() != 'Penta':
    776             raise Exception("collapse error message: only a 3d mesh can be collapsed")
     778            raise Exception('collapse error message: only a 3d mesh can be collapsed')
    777779
    778780        # Start with changing all the fields from the 3d mesh
  • issm/trunk-jpl/src/m/classes/modellist.m

    r19040 r27417  
    298298%      BuildMultipleQueueingScript(executionpath,codepath)
    299299
    300 disp('building queueing script');
     300disp('building queuing script');
    301301
    302302%First try and figure out if there is a special script for this particular cluster
     
    363363end% }}}
    364364function md=LaunchMultipleQueueJobgemini(cluster,name,executionpath)% {{{
    365 %LAUNCHMULTIPLEQUEUEJOBGEMINI - Launch multiple queueing script on Gemini cluster
     365%LAUNCHMULTIPLEQUEUEJOBGEMINI - Launch multiple queuing script on Gemini cluster
    366366%
    367367%   Usage:
    368368%      LaunchMultipleQueueJobgemini(cluster,name,executionpath)
    369369
    370 %first, check we have the binary file and the queueing script
     370%first, check we have the binary file and the queuing script
    371371if ~exist([ name '.queue'],'file'),
    372         error('LaunchMultipleQueueJobgemini error message: queueing script issing, cannot go forward');
     372        error('LaunchMultipleQueueJobgemini error message: queuing script issing, cannot go forward');
    373373end
    374374
     
    378378
    379379%upload both files to cluster
    380 disp('uploading input file,  queueing script and variables script');
     380disp('uploading input file,  queuing script and variables script');
    381381eval(['!scp ModelList.tar.gz ' name '.queue '  cluster ':' executionpath]);
    382382
  • issm/trunk-jpl/src/m/classes/sampling.m

    r26747 r27417  
    7575                        if(md.sampling.robin)
    7676                                md = checkfield(md,'fieldname','sampling.beta','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>',0);
    77             end
     77                        end
     78                        md = checkfield(md,'fieldname','sampling.phi','NaN',1,'Inf',1,'numel',1,'>=',0);
    7879                        md = checkfield(md,'fieldname','sampling.alpha','NaN',1,'Inf',1,'numel',1,'>',0);
    7980                        md = checkfield(md,'fieldname','sampling.seed','NaN',1,'Inf',1,'numel',1);
  • issm/trunk-jpl/src/m/classes/sampling.py

    r26301 r27417  
    2020        self.tau = 0
    2121        self.beta = np.nan
    22         self.phi = 0
     22        self.phi = np.nan
    2323        self.alpha = 0
    2424        self.robin = 0
     
    5454
    5555    def setdefaultparameters(self): #{{{
    56         # Scaling coefficient
    57         self.tau = 1
    5856
    5957        # Apply Robin boundary conditions
    6058        self.robin = 0
    6159
    62         # Temporal correlation factor
    63         self.phi = 0
    64 
    6560        # Exponent in fraction SPDE (default: 2, biLaplacian covariance operator)
    66         self.alpha = 2
     61        self.alpha = 2 # Default
    6762
    6863        # Seed for pseudorandom number generator (default: -1, for random seed)
     
    9994    def marshall(self, prefix, md, fid): #{{{
    10095        WriteData(fid, prefix, 'object', self, 'fieldname', 'kappa', 'format', 'DoubleMat', 'mattype', 1)
    101         WriteData(fid, prefix, 'object', self, 'fieldname', 'tau', 'format', 'Double')
     96        WriteData(fid, prefix, 'object', self, 'fieldname', 'tau', 'format', 'DoubleMat', 'mattype', 1)
    10297        WriteData(fid, prefix, 'object', self, 'fieldname', 'beta', 'format', 'DoubleMat', 'mattype', 1)
    103         WriteData(fid, prefix, 'object', self, 'fieldname', 'phi', 'format', 'Double')
     98        WriteData(fid, prefix, 'object', self, 'fieldname', 'phi', 'format', 'DoubleMat', 'mattype', 1)
    10499        WriteData(fid, prefix, 'object', self, 'fieldname', 'alpha', 'format', 'Integer')
    105100        WriteData(fid, prefix, 'object', self, 'fieldname', 'robin', 'format', 'Boolean')
  • issm/trunk-jpl/src/m/classes/solidearthsettings.m

    r27131 r27417  
    8888                        self.cross_section_shape=1; %square as default (see iedge in GiaDeflectionCorex)
    8989
    90                         %no grd model by default:
     90                        %grd model by default
    9191                        self.grdmodel=1;
    9292
     
    171171                        WriteData(fid,prefix,'object',self,'fieldname','viscous','name','md.solidearth.settings.viscous','format','Boolean');
    172172                        WriteData(fid,prefix,'object',self,'fieldname','rotation','name','md.solidearth.settings.rotation','format','Boolean');
    173                         WriteData(fid,prefix,'object',self,'fieldname','rotation','name','md.solidearth.settings.satellitegravity','format','Boolean');
    174173                        WriteData(fid,prefix,'object',self,'fieldname','grdocean','name','md.solidearth.settings.grdocean','format','Boolean');
    175174                        WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','name','md.solidearth.settings.ocean_area_scaling','format','Boolean');
  • issm/trunk-jpl/src/m/classes/solidearthsettings.py

    r26840 r27417  
    9393        self.cross_section_shape = 1 # Square as default (see iedge in GiaDeflectionCorex)
    9494
    95         # No GRD model by default
    96         self.grdmodel = 0
     95        # GRD model by default
     96        self.grdmodel = 1
    9797    # }}}
    9898
  • issm/trunk-jpl/src/m/classes/transient.m

    r27403 r27417  
    144144                        WriteData(fid,prefix,'object',self,'fieldname','isesa','format','Boolean');
    145145                        WriteData(fid,prefix,'object',self,'fieldname','isdamageevolution','format','Boolean');
     146                        WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean');
    146147                        WriteData(fid,prefix,'object',self,'fieldname','ishydrology','format','Boolean');
    147148                        WriteData(fid,prefix,'object',self,'fieldname','isdebris','format','Boolean');
    148                         WriteData(fid,prefix,'object',self,'fieldname','ismovingfront','format','Boolean');
    149149                        WriteData(fid,prefix,'object',self,'fieldname','issampling','format','Boolean');
    150150                        WriteData(fid,prefix,'object',self,'fieldname','isslc','format','Boolean');
  • issm/trunk-jpl/src/m/classes/transient.py

    r27403 r27417  
    146146        WriteData(fid, prefix, 'object', self, 'fieldname', 'isesa', 'format', 'Boolean')
    147147        WriteData(fid, prefix, 'object', self, 'fieldname', 'isdamageevolution', 'format', 'Boolean')
     148        WriteData(fid, prefix, 'object', self, 'fieldname', 'ismovingfront', 'format', 'Boolean')
    148149        WriteData(fid, prefix, 'object', self, 'fieldname', 'ishydrology', 'format', 'Boolean')
    149         WriteData(fid, prefix, 'object', self, 'fieldname', 'ismovingfront', 'format', 'Boolean')
    150150        WriteData(fid, prefix, 'object', self, 'fieldname', 'isdebris', 'format', 'Boolean')
    151151        WriteData(fid, prefix, 'object', self, 'fieldname', 'issampling', 'format', 'Boolean')
  • issm/trunk-jpl/test/NightlyRun/test355.m

    r27396 r27417  
    2323
    2424%Define initial conditions
    25 md.initialization.vx = 10^-6*md.constants.yts*ones(md.mesh.numberofvertices,1);
     25md.initialization.vx = 1.0e-6*md.constants.yts*ones(md.mesh.numberofvertices,1);
    2626md.initialization.vy = zeros(md.mesh.numberofvertices,1);
    2727md.initialization.temperature=(273.-20.)*ones(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/test/NightlyRun/test355.py

    r27396 r27417  
    1010from generic import generic
    1111
    12 #create model:
     12# Create model
    1313md = triangle(model(), '../Exp/Square.exp', 50000.)
    1414md.mesh.x = md.mesh.x / 100
    1515md.mesh.y = md.mesh.y / 100
    16 #miscellaneous
    17 md = setmask(md, '', '')   #everywhere grounded
     16md.miscellaneous.name = 'testChannels'
     17
     18# Miscellaneous
     19md = setmask(md, '', '') # Everywhere grounded
    1820md = setflowequation(md, 'SSA', 'all')
    19 md.miscellaneous.name = 'testChannels'
    20 md.stressbalance.maxiter = 2  #Make sure it runs quickly...
     21md.stressbalance.maxiter = 2 # Make sure it runs quickly...
    2122
    22 #Some constants
     23# Some constants
    2324md.constants.g = 9.8
    2425md.materials.rho_ice = 910
    2526
    26 #Geometry
     27# Geometry
    2728md.geometry.surface = -0.02 * md.mesh.x + 320
    2829md.geometry.bed = np.zeros((md.mesh.numberofvertices))
     
    3031md.geometry.thickness = md.geometry.surface - md.geometry.bed
    3132
    32 #Define initial conditions
     33# Define initial conditions
    3334md.initialization.vx = 1.0e-6 * md.constants.yts * np.ones((md.mesh.numberofvertices))
    3435md.initialization.vy = np.zeros((md.mesh.numberofvertices))
     
    3738md.initialization.hydraulic_potential = md.materials.rho_ice * md.constants.g * md.geometry.thickness
    3839
    39 #Materials
     40#cMaterials
    4041md.materials.rheology_B = (5e-25)**(-1./3.) * np.ones((md.mesh.numberofvertices))
    4142md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements))
    4243
    43 #Friction
     44#cFriction
    4445md.friction.coefficient = np.zeros((md.mesh.numberofvertices))
    4546md.friction.p = np.ones((md.mesh.numberofelements))
     
    4748#md.friction.coupling = 0
    4849
    49 #Boundary conditions:
     50#Bcoundary conditions:
    5051md = SetIceSheetBC(md)
    5152
     
    7475
    7576md.cluster = generic('np', 2)
    76 md = solve(md, 'Transient')   #or 'tr'
     77md = solve(md, 'Transient') # Or 'tr'
    7778
    78 #Fields and tolerances to track changes
     79# Fields and tolerances to track changes
    7980field_names = ['HydrologySheetThickness1', 'HydraulicPotential1', 'ChannelArea1',
    8081               'HydrologySheetThickness2', 'HydraulicPotential2', 'ChannelArea2',
  • issm/trunk-jpl/test/NightlyRun/test442.m

    r24862 r27417  
    5555        'Bed3','Surface3','Thickness3','Floatingice3','Vx3','Vy3','Vz3','Pressure3','FloatingiceMeltingrate3',};
    5656field_tolerances={...
    57         2e-11,5e-12,2e-11,1e-11,5e-10,1e-08,6e-10,1e-13,1e-13,...
     57        2e-11,5e-12,2e-11,1e-11,5e-10,3e-08,6e-10,1e-13,1e-13,...
    5858        5e-09,5e-09,5e-09,5e-09,9e-05,9e-05,9e-05,5e-09,1e-13,...
    59         8e-09,3e-08,8e-09,5e-09,8e-04,6e-04,2e-09,1e-8,4e-10};
     59        1e-08,3e-08,7e-09,2e-07,1e-03,6e-04,2e-09,1e-08,4e-10};
    6060field_values={...
    6161        (md.results.TransientSolution(1).Base),...
  • issm/trunk-jpl/test/NightlyRun/test442.py

    r24862 r27417  
    6565               'Bed3', 'Surface3', 'Thickness3', 'Floatingice3', 'Vx3', 'Vy3', 'Vz3', 'Pressure3', 'FloatingiceMeltingrate3']
    6666field_tolerances = [2e-11, 5e-12, 2e-11, 1e-11, 5e-10, 3e-08, 6e-10, 1e-13, 1e-13,
    67                     3e-11, 3e-11, 9e-10, 7e-11, 7e-09, 1e-07, 1e-09, 1e-10, 1e-13,
    68                     1e-8, 2e-08, 7e-09, 2e-7, 1e-03, 8e-04, 2e-09, 1e-10, 1e-13]
     67                    5e-09, 5e-09, 5e-09, 5e-09, 9e-05, 9e-05, 9e-05, 5e-09, 1e-13,
     68                    1e-08, 3e-08, 7e-09, 2e-67, 1e-03, 8e-04, 2e-09, 1e-08, 4e-10]
    6969field_values = [md.results.TransientSolution[0].Base,
    7070                md.results.TransientSolution[0].Surface,
Note: See TracChangeset for help on using the changeset viewer.