Changeset 27009


Ignore:
Timestamp:
05/18/22 09:46:29 (3 years ago)
Author:
Cheng Gong
Message:

ADD: frontal ablation rate in frontalforcings

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp

    r27006 r27009  
    146146                case FrontalForcingsDefaultEnum:
    147147                        iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);
     148                        iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.ablationrate",CalvingAblationrateEnum);
    148149                        break;
    149150                case FrontalForcingsRignotEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r26998 r27009  
    824824        IssmDouble  B,sigma_max,sigma_max_floating,sigma_max_grounded,n;
    825825        IssmDouble  epse_2,groundedice,bed,sealevel;
    826         IssmDouble  mrate, rho_ice, rho_water, thickness, paramX, Hab;
     826        IssmDouble  arate, rho_ice, rho_water, thickness, paramX, Hab;
    827827        int                     use_parameter=0;
    828828        int                     nonlinear_law=0;
     
    843843        Input *n_input       = this->GetInput(MaterialsRheologyNEnum);                _assert_(n_input);
    844844        Input *sl_input      = this->GetInput(SealevelEnum);                          _assert_(sl_input);
    845         Input *mrate_input   = this->GetInput(CalvingMeltingrateEnum);                _assert_(mrate_input);
     845        Input *arate_input   = this->GetInput(CalvingAblationrateEnum);               _assert_(arate_input);
    846846
    847847        /* Ice and sea water density */
     
    873873                vel=sqrt(vx*vx+vy*vy)+1.e-14;
    874874                sl_input->GetInputValue(&sealevel,gauss);
    875                 mrate_input->GetInputValue(&mrate,gauss);
     875                arate_input->GetInputValue(&arate,gauss);
    876876
    877877                /*Compute strain rate and viscosity: */
     
    916916                                break;
    917917                        case -1:
    918                                 /* use nothing, just the mrate*/
     918                                /* use nothing, just the arate*/
    919919                                break;
    920920                        default:
     
    937937                if (nonlinear_law) {
    938938                        /*This von Mises type has too strong positive feedback with vel included
    939                          * calvingrate[iv] = (mrate+sigma_vm[iv]*vel/sigma_max)*gamma;
     939                         * calvingrate[iv] = (arate+sigma_vm[iv]*vel/sigma_max)*gamma;
    940940                         */
    941941                        Hab = thickness - (rho_water/rho_ice) * (sealevel-bed);
     
    943943                        if (bed > sealevel) Hab = 0.;
    944944
    945                         calvingrate[iv] = (mrate+Hab/sigma_max)*gamma;
     945                        calvingrate[iv] = (arate+Hab/sigma_max)*gamma;
    946946                }
    947947                else {
    948                         calvingrate[iv] = mrate*gamma;
     948                        calvingrate[iv] = arate*gamma;
    949949                }
    950950        }
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r26983 r27009  
    654654        CalvingCalvingrateEnum,
    655655        CalvingHabFractionEnum,
     656        CalvingAblationrateEnum,
    656657        CalvingMeltingrateEnum,
    657658        CalvingStressThresholdFloatingiceEnum,
  • issm/trunk-jpl/src/m/classes/calvingparameterization.m

    r26850 r27009  
    6666                        md = checkfield(md,'fieldname','calving.min_thickness','>=',0,'NaN',1,'Inf',1,'numel',1);
    6767                        md = checkfield(md,'fieldname','calving.use_param','values',[-1, 0, 1, 2, 3, 4]);
    68                         md = checkfield(md,'fieldname','calving.scale_theta','>=',0,'NaN',1,'Inf',1,'numel',1);
     68                        md = checkfield(md,'fieldname','calving.scale_theta','NaN',1,'Inf',1,'numel',1);
    6969                        md = checkfield(md,'fieldname','calving.amp_alpha','<>',0,'NaN',1,'Inf',1,'numel',1);
    7070                        md = checkfield(md,'fieldname','calving.midp','NaN',1,'Inf',1,'numel',1);
  • issm/trunk-jpl/src/m/classes/frontalforcings.m

    r23657 r27009  
    77        properties (SetAccess=public)
    88                meltingrate   = NaN;
     9                ablationrate   = NaN;
    910        end
    1011        methods
     
    2930                function self = extrude(self,md) % {{{
    3031                        self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
     32                        self.ablationrate=project3d(md,'vector',self.ablationrate,'type','node');
    3133                end % }}}
    3234                function self = setdefaultparameters(self) % {{{
    3335
    3436                        meltingrate   = NaN;
     37                        ablationrate   = NaN;
    3538                end % }}}
    3639                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    3942
    4043                        md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
     44                        md = checkfield(md,'fieldname','frontalforcings.ablationrate','NaN',1,'Inf',1,'timeseries',1);
    4145
    4246                end % }}}
     
    4448                        disp(sprintf('   Frontalforcings parameters:'));
    4549                        fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
     50                        fielddisplay(self,'ablationrate','frontal ablation rate at given location [m/a], it contains both calving and melting');
    4651                end % }}}
    4752                function marshall(self,prefix,md,fid) % {{{
     
    4954                        WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer');
    5055                        WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
     56                        WriteData(fid,prefix,'object',self,'fieldname','ablationrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    5157                end % }}}
    5258        end
Note: See TracChangeset for help on using the changeset viewer.