Changeset 21331
- Timestamp:
- 11/01/16 11:48:51 (8 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r21295 r21331 70 70 parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum)); 71 71 parameters->AddObject(iomodel->CopyConstantObject("md.slr.elastic",SealevelriseElasticEnum)); 72 parameters->AddObject(iomodel->CopyConstantObject("md.slr.rotation",SealevelriseRotationEnum)); 73 parameters->AddObject(iomodel->CopyConstantObject("md.slr.tide_love_h",SealevelriseTidalLoveHEnum)); 74 parameters->AddObject(iomodel->CopyConstantObject("md.slr.tide_love_k",SealevelriseTidalLoveKEnum)); 75 parameters->AddObject(iomodel->CopyConstantObject("md.slr.angular_velocity",SealevelriseAngularVelocityEnum)); 72 76 parameters->AddObject(iomodel->CopyConstantObject("md.slr.ocean_area_scaling",SealevelriseOceanAreaScalingEnum)); 73 77 -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r21325 r21331 4048 4048 bool computerigid = true; 4049 4049 bool computeelastic= true; 4050 bool computerotation= true; 4050 4051 4051 4052 /*early return if we are not on the ocean:*/ … … 4055 4056 this->parameters->FindParam(&computerigid,SealevelriseRigidEnum); 4056 4057 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum); 4057 4058 this->parameters->FindParam(&computerotation,SealevelriseRotationEnum); 4059 4060 /*recover some parameters for rotational feedback: */ 4061 IssmDouble tide_love_h, tide_love_k, omega; 4062 if(computerotation){ 4063 this->parameters->FindParam(&tide_love_h,SealevelriseTidalLoveHEnum); 4064 this->parameters->FindParam(&tide_love_k,SealevelriseTidalLoveKEnum); 4065 this->parameters->FindParam(&omega,SealevelriseAngularVelocityEnum); 4066 } 4067 4058 4068 /*early return if rigid or elastic not requested:*/ 4059 4069 if(!computerigid && !computeelastic) return; … … 4124 4134 IssmDouble delPhi,delLambda; 4125 4135 4136 /* if rotation, compute m1 m2 m3 from loading function */ 4137 IssmDouble m1, m2, m3; 4138 if(computerotation){ 4139 m1=0; 4140 m2=0; 4141 m3=0; 4142 } 4143 4126 4144 for(int i=0;i<gsize;i++){ 4127 4145 … … 4145 4163 G_elastic[i] += G_elastic_precomputed[index]; 4146 4164 values[i]+=3*rho_water/rho_earth*area/eartharea*S*G_elastic[i]; 4165 } 4166 4167 /*Rotational feedback: */ 4168 if(computerotation){ 4169 values[i]+=(1+tide_love_k-tide_love_h/9.81)*0.5*pow((omega*radius[i]),2)*(-m3*(2+m3)*(1+3*cos(2*lati)) 4170 + 2*pow(m2,2)*(pow(cos(lati),2) + 0.5*(-1 + 3*cos(2*longi)) * pow(sin(lati),2)) 4171 + 2*pow(m1,2)*(pow(cos(lati),2) - 0.5*(1+3*cos(2*longi)) * pow(sin(lati),2)) 4172 - m1*(1+m3)*cos(longi)*sin(2*lati) 4173 - 2*m1*m2*cos(longi)*pow(sin(lati),2)*sin(longi) 4174 - m2*(1+m3)*sin(2*lati)*sin(longi)); 4147 4175 } 4148 4176 } -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r21295 r21331 773 773 SealevelriseRigidEnum, 774 774 SealevelriseElasticEnum, 775 SealevelriseRotationEnum, 776 SealevelriseTidalLoveHEnum, 777 SealevelriseTidalLoveKEnum, 778 SealevelriseAngularVelocityEnum, 775 779 SealevelriseOceanAreaScalingEnum, 776 780 SealevelriseGElasticEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r21295 r21331 754 754 case SealevelriseRigidEnum : return "SealevelriseRigid"; 755 755 case SealevelriseElasticEnum : return "SealevelriseElastic"; 756 case SealevelriseRotationEnum : return "SealevelriseRotation"; 757 case SealevelriseTidalLoveHEnum : return "SealevelriseTidalLoveH"; 758 case SealevelriseTidalLoveKEnum : return "SealevelriseTidalLoveK"; 759 case SealevelriseAngularVelocityEnum : return "SealevelriseAngularVelocity"; 756 760 case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling"; 757 761 case SealevelriseGElasticEnum : return "SealevelriseGElastic"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r21295 r21331 772 772 else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum; 773 773 else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum; 774 else if (strcmp(name,"SealevelriseRotation")==0) return SealevelriseRotationEnum; 775 else if (strcmp(name,"SealevelriseTidalLoveH")==0) return SealevelriseTidalLoveHEnum; 776 else if (strcmp(name,"SealevelriseTidalLoveK")==0) return SealevelriseTidalLoveKEnum; 777 else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum; 774 778 else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum; 775 779 else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum; … … 871 875 else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum; 872 876 else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum; 873 else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum; 874 881 else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum; 875 882 else if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum; 876 883 else if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum; 884 else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum; 881 885 else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum; 882 886 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; -
issm/trunk-jpl/src/m/classes/slr.js
r21309 r21331 18 18 this.rigid=1; 19 19 this.elastic=1; 20 this.rotation= 1;20 this.rotation=0; 21 21 this.ocean_area_scaling=0; 22 22 … … 24 24 this.tide_love_h=0.6149; //degree 2 25 25 this.tide_love_k=0.3055; //degree 2 26 27 // mean rotational velocity of earth: 28 this.angular_velocity=7.2921*10^-5; // [s^-1] 26 29 27 30 //numerical discretization accuracy … … 47 50 md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1); 48 51 md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1); 52 md = checkfield(md,'fieldname','slr.angular_velocity','NaN',1,'Inf',1); 49 53 md = checkfield(md,'fieldname','slr.reltol','size',[1, 1]); 50 54 md = checkfield(md,'fieldname','slr.abstol','size',[1, 1]); … … 79 83 fielddisplay(this,'tide_love_h','tidal love number (degree 2)'); 80 84 fielddisplay(this,'tide_love_k','tidal love number (degree 2)'); 85 fielddisplay(this,'angular_velocity','mean rotational velocity of earth [per second]'); 81 86 fielddisplay(this,'rigid','rigid earth graviational potential perturbation'); 82 87 fielddisplay(this,'elastic','elastic earth graviational potential perturbation'); … … 99 104 WriteData(fid,prefix,'object',this,'fieldname','tide_love_h','format','Double'); 100 105 WriteData(fid,prefix,'object',this,'fieldname','tide_love_k','format','Double'); 106 WriteData(fid,prefix,'object',this,'fieldname','angular_velocity','format','Double'); 101 107 WriteData(fid,prefix,'object',this,'fieldname','rigid','format','Boolean'); 102 108 WriteData(fid,prefix,'object',this,'fieldname','elastic','format','Boolean'); … … 128 134 this.tide_love_h=NullFix(this.tide_love_h,NaN); 129 135 this.tide_love_k=NullFix(this.tide_love_k,NaN); 136 this.angular_velocity=NullFix(this.angular_velocity,NaN); 130 137 this.rigid=NullFix(this.rigid,NaN); 131 138 this.elastic=NullFix(this.elastic,NaN); … … 146 153 this.tide_love_h = 0; 147 154 this.tide_love_k = 0; 155 this.angular_velocity = 0; 148 156 this.rigid = 0; 149 157 this.elastic = 0; -
issm/trunk-jpl/src/m/classes/slr.m
r21309 r21331 16 16 tide_love_k = 0; %ideam 17 17 tide_love_h = 0; %ideam 18 angular_velocity = 0; 18 19 rigid = 0; 19 20 elastic = 0; … … 45 46 self.rigid=1; 46 47 self.elastic=1; 47 self.rotation= 1;48 self.rotation=0; 48 49 self.ocean_area_scaling=0; 49 50 … … 51 52 self.tide_love_h=0.6149; %degree 2 52 53 self.tide_love_k=0.3055; % degree 2 54 55 % mean rotational velocity of earth 56 self.angular_velocity=7.2921*10^-5; % [s^-1] 53 57 54 58 %numerical discretization accuracy … … 72 76 md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1); 73 77 md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1); 78 md = checkfield(md,'fieldname','slr.angular_velocity','NaN',1,'Inf',1); 74 79 md = checkfield(md,'fieldname','slr.reltol','size',[1 1]); 75 80 md = checkfield(md,'fieldname','slr.abstol','size',[1 1]); … … 108 113 fielddisplay(self,'tide_love_k','tidal load Love number (deg 2)'); 109 114 fielddisplay(self,'tide_love_h','tidal load Love number (deg 2)'); 115 fielddisplay(self,'angular_velocity','mean rotational velocity of earth [per second]'); 110 116 fielddisplay(self,'rigid','rigid earth graviational potential perturbation'); 111 117 fielddisplay(self,'elastic','elastic earth graviational potential perturbation'); … … 128 134 WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double'); 129 135 WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double'); 136 WriteData(fid,prefix,'object',self,'fieldname','angular_velocity','format','Double'); 130 137 WriteData(fid,prefix,'object',self,'fieldname','rigid','format','Boolean'); 131 138 WriteData(fid,prefix,'object',self,'fieldname','elastic','format','Boolean'); … … 157 164 writejsdouble(fid,[modelname '.slr.tide_love_k'],self.tide_love_k); 158 165 writejsdouble(fid,[modelname '.slr.tide_love_h'],self.tide_love_h); 166 writejsdouble(fid,[modelname '.slr.angular_velocity'],self.angular_velocity); 159 167 writejsdouble(fid,[modelname '.slr.rigid'],self.rigid); 160 168 writejsdouble(fid,[modelname '.slr.elastic'],self.elastic); -
issm/trunk-jpl/src/m/classes/slr.py
r21309 r21331 25 25 self.tide_love_h = 0 26 26 self.tide_love_k = 0 27 self.angular_velocity = 0; 27 28 self.rigid = 0 28 29 self.elastic = 0 … … 47 48 string="%s\n%s"%(string,fielddisplay(self,'tide_love_k','tidal load Love number (degree 2)')) 48 49 string="%s\n%s"%(string,fielddisplay(self,'tide_love_h','tidal load Love number (degree 2)')) 50 string="%s\n%s"%(string,fielddisplay(self,'angular_velocity','mean rotational velocity of earth [per second]')); 49 51 string="%s\n%s"%(string,fielddisplay(self,'rigid','rigid earth graviational potential perturbation')) 50 52 string="%s\n%s"%(string,fielddisplay(self,'elastic','elastic earth graviational potential perturbation')) … … 69 71 self.rigid=1 70 72 self.elastic=1 71 self.rotation= 173 self.rotation=0 72 74 self.ocean_area_scaling=0 73 75 … … 75 77 self.tide_love_h=0.6149; #degree 2 76 78 self.tide_love_k=0.3055; #degree 2 79 80 #mean rotational velocity of earth 81 self.angular_velocity=7.2921*10^-5; # [s^-1] 77 82 78 83 #numerical discretization accuracy … … 102 107 md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1) 103 108 md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1) 109 md = checkfield(md,'fieldname','slr.angular_velocity','NaN',1,'Inf',1) 104 110 md = checkfield(md,'fieldname','slr.reltol','size',[1,1]) 105 111 md = checkfield(md,'fieldname','slr.abstol','size',[1,1]) … … 127 133 WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double'); 128 134 WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double'); 135 WriteData(fid,prefix,'object',self,'fieldname','angular_velocity','format','Double'); 129 136 WriteData(fid,prefix,'object',self,'fieldname','rigid','format','Boolean') 130 137 WriteData(fid,prefix,'object',self,'fieldname','elastic','format','Boolean')
Note:
See TracChangeset
for help on using the changeset viewer.