Changeset 18775


Ignore:
Timestamp:
11/12/14 17:24:30 (10 years ago)
Author:
bdef
Message:

Updating model to take into account new friction law's, adding md.calving creation if needed

Location:
issm/trunk-jpl/src/m/classes
Files:
4 edited

Legend:

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

    r18512 r18775  
    22%
    33%   Usage:
    4 %      frictionweertman=frictionhydro();
     4%      friction=frictionhydro();
    55
    66classdef frictionhydro
     
    2626                        %Early return
    2727                        if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
    28                         md = checkfield(md,'fieldname','frictionhydro.q','NaN',1,'size',[md.mesh.numberofelements 1]);
    29                         md = checkfield(md,'fieldname','frictionhydro.C','NaN',1,'size',[md.mesh.numberofelements 1]);
    30                         md = checkfield(md,'fieldname','frictionhydro.As','NaN',1,'size',[md.mesh.numberofelements 1]);
     28                        md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
     29                        md = checkfield(md,'fieldname','friction.C','NaN',1,'size',[md.mesh.numberofelements 1]);
     30                        md = checkfield(md,'fieldname','friction.As','NaN',1,'size',[md.mesh.numberofelements 1]);
    3131                end % }}}
    3232                function disp(obj) % {{{
    33                         disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007')
     33                        disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007'));
    3434                        fielddisplay(obj,'q','friction law exponent q>=1');
    3535                        fielddisplay(obj,'C','friction law max value [SI]');
  • issm/trunk-jpl/src/m/classes/frictionweertman.m

    r18482 r18775  
    3939                function disp(obj) % {{{
    4040                        disp(sprintf('Weertman sliding law parameters: Sigma_b = C^2 * |u_b|^(1/m-1) * u_b'));
    41                         fielddisplay(obj,'coefficient','friction coefficient [SI]');
     41                        fielddisplay(obj,'C','friction coefficient [SI]');
    4242                        fielddisplay(obj,'m','m exponent');
    4343                end % }}}
  • issm/trunk-jpl/src/m/classes/hydrologydc.py

    r18749 r18775  
    6666                        string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]'))
    6767
    68 
    6968                string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers'))
    7069                string="%s\n\t\t%s"%(string,'0: no transfer')
  • issm/trunk-jpl/src/m/classes/model.m

    r18757 r18775  
    130130                        if isa(md.seaice,'double');
    131131                                md.seaice=seaice();
     132                        end
     133                        %2014 November 12
     134                        if isa(md.calving,'double');
     135                                md.calving=calving();
    132136                        end
    133137                end% }}}
     
    188192                        %Start with changing all the fields from the 3d mesh
    189193
     194                        %dealing with the friciton law
    190195                        %drag is limited to nodes that are on the bedrock.
    191                         md.friction.coefficient=project2d(md,md.friction.coefficient,1);
    192 
    193                         %p and q (same deal, except for element that are on the bedrock: )
    194                         md.friction.p=project2d(md,md.friction.p,1);
    195                         md.friction.q=project2d(md,md.friction.q,1);
     196                        if isa(md.friction,'friction'),
     197                                md.friction.coefficient=project2d(md,md.friction.coefficient,1);
     198                                md.friction.p=project2d(md,md.friction.p,1);
     199                                md.friction.q=project2d(md,md.friction.q,1);
     200                        elseif isa(md.friction,'frictionhydro'),
     201                                md.friction.q=project2d(md,md.friction.q,1);
     202                                md.friction.C=project2d(md,md.friction.C,1);
     203                                md.friction.As=project2d(md,md.friction.As,1);
     204                        elseif isa(md.friction,'frictionwaterlayer'),
     205                                md.friction.coefficient=project2d(md,md.friction.coefficient,1);
     206                                md.friction.p=project2d(md,md.friction.p,1);
     207                                md.friction.q=project2d(md,md.friction.q,1);
     208                                md.friction.water_layer=project2d(md,md.friction.water_layer,1);
     209                        elseif isa(md.friction,'frictionweertman'),
     210                                md.friction.C=project2d(md,md.friction.C,1);
     211                                md.friction.m=project2d(md,md.friction.m,1);
     212            end
    196213
    197214                        %observations
     
    737754
    738755                        %drag coefficient is limited to nodes that are on the bedrock.
    739                         md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
    740 
    741                         %p and q (same deal, except for element that are on the bedrock: )
    742                         md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
    743                         md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
    744 
     756                        if isa(md.friction,'friction'),
     757                                md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
     758                                md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
     759                                md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
     760                        elseif isa(md.friction,'frictionhydro'),
     761                                md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
     762                                md.friction.C=project3d(md,'vector',md.friction.C,'type','element');
     763                                md.friction.As=project3d(md,'vector',md.friction.As,'type','element');
     764                        elseif isa(md.friction,'frictionwaterlayer'),
     765                                md.friction.coefficient=project3d(md,'vector',md.friction.coefficient,'type','node','layer',1);
     766                                md.friction.p=project3d(md,'vector',md.friction.p,'type','element');
     767                                md.friction.q=project3d(md,'vector',md.friction.q,'type','element');
     768                                md.friction.water_layer=project3d(md,'vector',md.friction.water_layer,'type','node','layer',1);
     769                        elseif isa(md.friction,'frictionweertman'),
     770                                md.friction.C=project3d(md,'vector',md.friction.C,'type','node','layer',1);
     771                                md.friction.m=project3d(md,'vector',md.friction.m,'type','element');
     772            end
     773         
    745774                        %observations
    746775                        md.inversion.vx_obs=project3d(md,'vector',md.inversion.vx_obs,'type','node');
Note: See TracChangeset for help on using the changeset viewer.