Changeset 21326


Ignore:
Timestamp:
10/29/16 20:14:32 (8 years ago)
Author:
Eric.Larour
Message:

CHG: new steric rate formualtion.

Location:
issm/branches/trunk-larour-NatGeoScience2016/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/cores/sealevelrise_core.cpp

    r21317 r21326  
    3333        IssmDouble          *yy     = NULL;
    3434        IssmDouble          *zz     = NULL;
     35        IssmDouble          dt,steric_rate;
    3536
    3637        /*Recover some parameters: */
     
    9192
    9293                Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //ocean loading tems  (2nd and 5th terms on the RHS of Farrel and Clark)
     94
     95                /*Now deal with steric ocean expansion by just shifting Sg by a constant rate: */
     96                femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
     97                femmodel->parameters->FindParam(&steric_rate,SealevelriseStericRateEnum);
     98                Sg->Shift(dt*steric_rate);
    9399               
    94100                /*get results into elements:*/
    95                 //InputUpdateFromSolutionx(femmodel,Sg);                // from Eric
    96                 InputUpdateFromVectorx(femmodel,Sg,SealevelEnum,VertexSIdEnum);
     101                InputUpdateFromSolutionx(femmodel,Sg);          // from Eric
     102                //InputUpdateFromVectorx(femmodel,Sg,SealevelEnum,VertexSIdEnum);
    97103
    98104                int geodetic=0;
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h

    r21324 r21326  
    774774        SealevelriseElasticEnum,
    775775        SealevelriseOceanAreaScalingEnum,
     776        SealevelriseStericRateEnum,
    776777        SealevelriseGElasticEnum,
    777778        SealevelriseUElasticEnum,
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp

    r21324 r21326  
    755755                case SealevelriseElasticEnum : return "SealevelriseElastic";
    756756                case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling";
     757                case SealevelriseStericRateEnum : return "SealevelriseStericRate";
    757758                case SealevelriseGElasticEnum : return "SealevelriseGElastic";
    758759                case SealevelriseUElasticEnum : return "SealevelriseUElastic";
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp

    r21324 r21326  
    773773              else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
    774774              else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum;
     775              else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum;
    775776              else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
    776777              else if (strcmp(name,"SealevelriseUElastic")==0) return SealevelriseUElasticEnum;
     
    874875              else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
    875876              else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
    876               else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
     880              if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
     881              else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
    881882              else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
    882883              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
  • issm/branches/trunk-larour-NatGeoScience2016/src/m/classes/slr.m

    r21324 r21326  
    2121                rotation       = 0;
    2222                ocean_area_scaling = 0;
     23                steric_rate    = 0; %rate of ocean expansion from steric effects.
    2324                degacc         = 0;
    2425                requested_outputs      = {};
     
    5556                %numerical discretization accuracy
    5657                self.degacc=.01;
     58
     59                %steric:
     60                self.steric_rate=0;
    5761               
    5862                %output default:
     
    7781                        md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
    7882                        md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
     83                        md = checkfield(md,'fieldname','slr.steric_rate','size',[1 1]);
    7984                        md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10);
    8085                        md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1);
     
    113118                        fielddisplay(self,'rotation','earth rotational potential perturbation');
    114119                        fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]');
     120                        fielddisplay(self,'steric_rate','rate of steric ocean expansion (in mm/yr)');
    115121                        fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
    116122                        fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
     
    136142                        WriteData(fid,prefix,'object',self,'fieldname','rotation','format','Boolean');
    137143                        WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','format','Boolean');
     144                        WriteData(fid,prefix,'object',self,'fieldname','steric_rate','format','Double','scale',1e-3/yts);
    138145                        WriteData(fid,prefix,'object',self,'fieldname','degacc','format','Double');
    139146                        WriteData(fid,prefix,'object',self,'fieldname','transitions','format','MatArray');
     
    165172                        writejsdouble(fid,[modelname '.slr.rotation'],self.rotation);
    166173                        writejsdouble(fid,[modelname '.slr.ocean_area_scaling'],self.ocean_area_scaling);
     174                        writejsdouble(fid,[modelname '.slr.steric_rate'],self.steric_rate);
    167175                        writejsdouble(fid,[modelname '.slr.elastic'],self.elastic);
    168176                        writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
Note: See TracChangeset for help on using the changeset viewer.