Changeset 21752
- Timestamp:
- 06/01/17 15:40:48 (8 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp ¶
r21742 r21752 36 36 iomodel->FetchDataToInput(elements,"md.slr.deltathickness",SealevelriseDeltathicknessEnum); 37 37 iomodel->FetchDataToInput(elements,"md.slr.sealevel",SealevelEnum,0); 38 iomodel->FetchDataToInput(elements,"md.slr.steric_rate",SealevelriseStericRateEnum); 38 39 39 40 }/*}}}*/ -
TabularUnified issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp ¶
r21226 r21752 15 15 Vector<IssmDouble> *Sg_absolute = NULL; 16 16 Vector<IssmDouble> *Sg_eustatic = NULL; 17 Vector<IssmDouble> *steric_rate_g = NULL; 17 18 Vector<IssmDouble> *U_radial = NULL; 18 19 Vector<IssmDouble> *U_north = NULL; … … 33 34 IssmDouble *yy = NULL; 34 35 IssmDouble *zz = NULL; 36 IssmDouble dt; 35 37 36 38 /*Recover some parameters: */ … … 40 42 femmodel->parameters->FindParam(&isslr,TransientIsslrEnum); 41 43 femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum); 42 44 43 45 /*first, recover lat,long and radius vectors from vertices: */ 44 46 VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); … … 80 82 81 83 Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //ocean loading tems (2nd and 5th terms on the RHS of Farrel and Clark) 82 83 /*get results into elements:*/ 84 //InputUpdateFromSolutionx(femmodel,Sg); // from Eric 85 InputUpdateFromVectorx(femmodel,Sg,SealevelEnum,VertexSIdEnum); 86 84 85 86 87 87 /*compute other geodetic signatures, such as absolute sea level chagne, components of 3-D crustal motion: */ 88 88 /*Initialize:*/ … … 95 95 femmodel->SealevelriseGeodetic(U_radial,U_north,U_east,Sg,latitude,longitude,radius,xx,yy,zz); 96 96 97 /*Now deal with steric ocean expansion by just shifting Sg by a spatial rate pattern : */ 98 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 99 GetVectorFromInputsx(&steric_rate_g,femmodel,SealevelriseStericRateEnum,VertexPIdEnum); 100 Sg->AXPY(steric_rate_g,dt); 101 97 102 /*compute: absolute sea level change = relative sea level change + vertical motion*/ 98 103 Sg->Copy(Sg_absolute); Sg_absolute->AXPY(U_radial,1); … … 102 107 InputUpdateFromVectorx(femmodel,U_north,SealevelNmotionEnum,VertexSIdEnum); // north motion 103 108 InputUpdateFromVectorx(femmodel,U_east,SealevelEmotionEnum,VertexSIdEnum); // east motion 104 InputUpdateFromVectorx(femmodel,Sg_absolute,SealevelAbsoluteEnum,VertexSIdEnum); 109 InputUpdateFromVectorx(femmodel,Sg_absolute,SealevelAbsoluteEnum,VertexSIdEnum); //absolute sea level 110 InputUpdateFromVectorx(femmodel,Sg,SealevelEnum,VertexSIdEnum); //relative sea level 105 111 106 112 if(save_results){ … … 119 125 delete U_east; 120 126 delete Sg_absolute; 127 delete steric_rate_g; 121 128 if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);} 122 129 } -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h ¶
r21738 r21752 803 803 SealevelriseAngularVelocityEnum, 804 804 SealevelriseOceanAreaScalingEnum, 805 SealevelriseStericRateEnum, 805 806 SealevelriseGElasticEnum, 806 807 SealevelriseUElasticEnum, -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp ¶
r21738 r21752 783 783 case SealevelriseAngularVelocityEnum : return "SealevelriseAngularVelocity"; 784 784 case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling"; 785 case SealevelriseStericRateEnum : return "SealevelriseStericRate"; 785 786 case SealevelriseGElasticEnum : return "SealevelriseGElastic"; 786 787 case SealevelriseUElasticEnum : return "SealevelriseUElastic"; -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp ¶
r21738 r21752 801 801 else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum; 802 802 else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum; 803 else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum; 803 804 else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum; 804 805 else if (strcmp(name,"SealevelriseUElastic")==0) return SealevelriseUElasticEnum; … … 874 875 else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum; 875 876 else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum; 876 else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum; 880 if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum; 881 else if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum; 881 882 else if (strcmp(name,"StringParam")==0) return StringParamEnum; 882 883 else if (strcmp(name,"Seg")==0) return SegEnum; … … 997 998 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 998 999 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 999 else if (strcmp(name,"P1P1")==0) return P1P1Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; 1003 if (strcmp(name,"P1P1")==0) return P1P1Enum; 1004 else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; 1004 1005 else if (strcmp(name,"MINI")==0) return MINIEnum; 1005 1006 else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum; -
TabularUnified issm/trunk-jpl/src/m/classes/slr.m ¶
r21530 r21752 24 24 rotation = 0; 25 25 ocean_area_scaling = 0; 26 steric_rate = 0; %rate of ocean expansion from steric effects. 26 27 degacc = 0; 27 28 requested_outputs = {}; … … 68 69 %numerical discretization accuracy 69 70 self.degacc=.01; 70 71 72 %steric: 73 self.steric_rate=0; 74 75 71 76 %output default: 72 77 self.requested_outputs={'default'}; … … 93 98 md = checkfield(md,'fieldname','slr.abstol','size',[1 1]); 94 99 md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1); 100 md = checkfield(md,'fieldname','slr.steric_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 95 101 md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10); 96 102 md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1); … … 134 140 fielddisplay(self,'rotation','earth rotational potential perturbation'); 135 141 fielddisplay(self,'ocean_area_scaling','correction for model representation of ocean area [default: No correction]'); 142 fielddisplay(self,'steric_rate','rate of steric ocean expansion (in mm/yr)'); 136 143 fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions'); 137 144 fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps'); … … 159 166 WriteData(fid,prefix,'object',self,'fieldname','rotation','format','Boolean'); 160 167 WriteData(fid,prefix,'object',self,'fieldname','ocean_area_scaling','format','Boolean'); 168 WriteData(fid,prefix,'object',self,'fieldname','steric_rate','format','DoubleMat','mattype',1,'scale',1e-3/md.constants.yts); 161 169 WriteData(fid,prefix,'object',self,'fieldname','degacc','format','Double'); 162 170 WriteData(fid,prefix,'object',self,'fieldname','transitions','format','MatArray'); … … 192 200 writejsdouble(fid,[modelname '.slr.rotation'],self.rotation); 193 201 writejsdouble(fid,[modelname '.slr.ocean_area_scaling'],self.ocean_area_scaling); 202 writejs1Darray(fid,[modelname '.slr.steric_rate'],self.steric_rate); 194 203 writejsdouble(fid,[modelname '.slr.degacc'],self.degacc); 195 204 writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
Note:
See TracChangeset
for help on using the changeset viewer.