Changeset 21324


Ignore:
Timestamp:
10/29/16 16:54:30 (8 years ago)
Author:
Eric.Larour
Message:

CHG: introducing ocean area scaling from Surendra's work.

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

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp

    r21312 r21324  
    7272        parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum));
    7373        parameters->AddObject(iomodel->CopyConstantObject("md.slr.elastic",SealevelriseElasticEnum));
     74        parameters->AddObject(iomodel->CopyConstantObject("md.slr.ocean_area_scaling",SealevelriseOceanAreaScalingEnum));
    7475
    7576        iomodel->FetchData(&elastic,"md.slr.elastic");
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/classes/Elements/Tria.cpp

    r21301 r21324  
    36363636        bool computerigid = true;
    36373637        bool computeelastic= true;
     3638        bool scaleoceanarea= false;
    36383639       
    36393640        /*early return if we are not on an ice cap:*/
     
    36513652        this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
    36523653        this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
     3654        this->parameters->FindParam(&scaleoceanarea,SealevelriseOceanAreaScalingEnum);
    36533655
    36543656        /*recover elastic green function:*/
     
    37143716        /*Compute eustatic compoent:*/
    37153717        _assert_(oceanarea>0.);
     3718        if(scaleoceanarea) oceanarea=3.619e+14; // use true ocean area, m^2
    37163719        eustatic += rho_ice*area*I/(oceanarea*rho_water);
    37173720
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h

    r21312 r21324  
    773773        SealevelriseRigidEnum,
    774774        SealevelriseElasticEnum,
     775        SealevelriseOceanAreaScalingEnum,
    775776        SealevelriseGElasticEnum,
    776777        SealevelriseUElasticEnum,
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp

    r21312 r21324  
    754754                case SealevelriseRigidEnum : return "SealevelriseRigid";
    755755                case SealevelriseElasticEnum : return "SealevelriseElastic";
     756                case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling";
    756757                case SealevelriseGElasticEnum : return "SealevelriseGElastic";
    757758                case SealevelriseUElasticEnum : return "SealevelriseUElastic";
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp

    r21312 r21324  
    772772              else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum;
    773773              else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
     774              else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum;
    774775              else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
    775776              else if (strcmp(name,"SealevelriseUElastic")==0) return SealevelriseUElasticEnum;
     
    874875              else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
    875876              else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    876               else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
     880              if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
     881              else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
    881882              else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
    882883              else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
  • issm/branches/trunk-larour-NatGeoScience2016/src/m/classes/slr.m

    r21049 r21324  
    88                deltathickness = NaN;
    99                sealevel       = NaN;
     10                spcthickness   = NaN;
    1011                maxiter        = 0;
    1112                reltol         = 0;
     
    1920                elastic        = 0;
    2021                rotation       = 0;
     22                ocean_area_scaling = 0;
    2123                degacc         = 0;
    2224                requested_outputs      = {};
     
    4547                self.elastic=1;
    4648                self.rotation=1;
     49                self.ocean_area_scaling=0;
    4750
    4851                %tidal love numbers:
     
    6568                        md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
    6669                        md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
     70                        md = checkfield(md,'fieldname','slr.spcthickness','Inf',1,'timeseries',1);
    6771                        md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
    6872                        md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
     
    98102                        fielddisplay(self,'deltathickness','thickness change (main loading of the slr solution core [m]');
    99103                        fielddisplay(self,'sealevel','current sea level (prior to computation) [m]');
     104                        fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]');
    100105                        fielddisplay(self,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)');
    101106                        fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
     
    107112                        fielddisplay(self,'tide_love_h','tidal load Love number (deg 2)');
    108113                        fielddisplay(self,'rotation','earth rotational potential perturbation');
     114                        fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]');
    109115                        fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
    110116                        fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
     
    117123                        WriteData(fid,prefix,'object',self,'fieldname','deltathickness','format','DoubleMat','mattype',2);
    118124                        WriteData(fid,prefix,'object',self,'fieldname','sealevel','mattype',1,'format','DoubleMat','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
     125                        WriteData(fid,prefix,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    119126                        WriteData(fid,prefix,'object',self,'fieldname','reltol','format','Double');
    120127                        WriteData(fid,prefix,'object',self,'fieldname','abstol','format','Double');
     
    128135                        WriteData(fid,prefix,'object',self,'fieldname','elastic','format','Boolean');
    129136                        WriteData(fid,prefix,'object',self,'fieldname','rotation','format','Boolean');
     137                        WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','format','Boolean');
    130138                        WriteData(fid,prefix,'object',self,'fieldname','degacc','format','Double');
    131139                        WriteData(fid,prefix,'object',self,'fieldname','transitions','format','MatArray');
     
    145153                        writejs1Darray(fid,[modelname '.slr.deltathickness'],self.deltathickness);
    146154                        writejs1Darray(fid,[modelname '.slr.sealevel'],self.sealevel);
     155                        writejs1Darray(fid,[modelname '.slr.spcthickness'],self.spcthickness);
    147156                        writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
    148157                        writejsdouble(fid,[modelname '.slr.reltol'],self.reltol);
     
    155164                        writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
    156165                        writejsdouble(fid,[modelname '.slr.rotation'],self.rotation);
     166                        writejsdouble(fid,[modelname '.slr.ocean_area_scaling'],self.ocean_area_scaling);
    157167                        writejsdouble(fid,[modelname '.slr.elastic'],self.elastic);
    158168                        writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
Note: See TracChangeset for help on using the changeset viewer.