Changeset 22323
- Timestamp:
- 01/03/18 21:02:33 (7 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r22004 r22323 229 229 iomodel->FetchData(6,"md.mesh.x","md.mesh.y","md.mesh.z","md.geometry.base","md.geometry.thickness","md.mask.ice_levelset"); 230 230 if (iomodel->domaintype == Domain3DsurfaceEnum) iomodel->FetchData(3,"md.mesh.lat","md.mesh.long","md.mesh.r"); 231 else iomodel->FetchDataToInput(elements,"md.mesh.scale_factor",MeshScaleFactorEnum,1.); 231 232 232 233 CreateNumberNodeToElementConnectivity(iomodel,solution_type); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22294 r22323 308 308 MeshYEnum, 309 309 MeshZEnum, 310 MeshScaleFactorEnum, 310 311 MeshElementsEnum, 311 312 MeshNumberofelementsEnum, … … 750 751 SubelementMigration2Enum, 751 752 SubelementMigration3Enum, 753 SubelementMigration4Enum, 752 754 ContactEnum, 753 755 GroundingOnlyEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22294 r22323 314 314 case MeshYEnum : return "MeshY"; 315 315 case MeshZEnum : return "MeshZ"; 316 case MeshScaleFactorEnum : return "MeshScaleFactor"; 316 317 case MeshElementsEnum : return "MeshElements"; 317 318 case MeshNumberofelementsEnum : return "MeshNumberofelements"; … … 740 741 case SubelementMigration2Enum : return "SubelementMigration2"; 741 742 case SubelementMigration3Enum : return "SubelementMigration3"; 743 case SubelementMigration4Enum : return "SubelementMigration4"; 742 744 case ContactEnum : return "Contact"; 743 745 case GroundingOnlyEnum : return "GroundingOnly"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22294 r22323 320 320 else if (strcmp(name,"MeshY")==0) return MeshYEnum; 321 321 else if (strcmp(name,"MeshZ")==0) return MeshZEnum; 322 else if (strcmp(name,"MeshScaleFactor")==0) return MeshScaleFactorEnum; 322 323 else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum; 323 324 else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum; … … 382 383 else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum; 383 384 else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum; 384 else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum; 388 if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum; 389 else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum; 389 390 else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum; 390 391 else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum; … … 505 506 else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum; 506 507 else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum; 507 else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum; 511 if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum; 512 else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum; 512 513 else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum; 513 514 else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum; … … 628 629 else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum; 629 630 else if (strcmp(name,"Step")==0) return StepEnum; 630 else if (strcmp(name,"Time")==0) return TimeEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; 634 if (strcmp(name,"Time")==0) return TimeEnum; 635 else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; 635 636 else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum; 636 637 else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum; … … 751 752 else if (strcmp(name,"None")==0) return NoneEnum; 752 753 else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum; 753 else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum; 757 if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum; 758 else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum; 758 759 else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum; 759 760 else if (strcmp(name,"SubelementMigration3")==0) return SubelementMigration3Enum; 761 else if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum; 760 762 else if (strcmp(name,"Contact")==0) return ContactEnum; 761 763 else if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum; … … 873 875 else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum; 874 876 else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum; 875 else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;876 else if (strcmp(name,"AmrType")==0) return AmrTypeEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum; 880 if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum; 881 else if (strcmp(name,"AmrType")==0) return AmrTypeEnum; 882 else if (strcmp(name,"AmrRestart")==0) return AmrRestartEnum; 881 883 else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum; 882 884 else if (strcmp(name,"AmrLevelMax")==0) return AmrLevelMaxEnum; … … 996 998 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 997 999 else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum; 998 else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;999 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; 1003 if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum; 1004 else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum; 1005 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; 1004 1006 else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum; 1005 1007 else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum; -
issm/trunk-jpl/src/m/classes/mesh2d.js
r21065 r22323 44 44 fielddisplay(this,"long","vertices longitude [degrees]"); 45 45 fielddisplay(this,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)"); 46 fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation)"); 46 47 } //}}} 47 48 this.classname = function () { //{{{ … … 70 71 checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d"); 71 72 checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[NaN, 3]); 73 if(this.scale_factor.length>1) checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 72 74 73 75 switch(solution){ … … 92 94 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1); 93 95 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3); 96 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 94 97 }//}}} 95 98 this.fix=function() { //{{{ … … 104 107 this.lat=NullFix(this.lat,NaN); 105 108 this.long=NullFix(this.long,NaN); 109 this.scale_factor=NullFix(this.scale_factor,NaN); 106 110 }//}}} 107 111 … … 118 122 this.long = NaN; 119 123 this.epsg = 0; 124 this.scale_factor = NaN; 120 125 121 126 this.vertexonboundary = NaN; -
issm/trunk-jpl/src/m/classes/mesh2d.m
r22004 r22323 16 16 long = NaN; 17 17 epsg = 0; 18 scale_factor = NaN; 18 19 19 20 vertexonboundary = NaN; … … 94 95 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 95 96 md = checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[NaN 3]); 97 if numel(md.mesh.scale_factor)>1, 98 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 99 end 96 100 97 101 if strcmp(solution,'ThermalSolution') … … 127 131 fielddisplay(self,'long','vertices longitude [degrees]'); 128 132 fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 133 fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)'); 129 134 end % }}} 130 135 function marshall(self,prefix,md,fid) % {{{ … … 141 146 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1); 142 147 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3); 148 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 143 149 end % }}} 144 150 function t = domaintype(self) % {{{ … … 162 168 writejs1Darray(fid,[modelname '.mesh.long'],self.long); 163 169 writejsdouble(fid,[modelname '.mesh.epsg'],self.epsg); 170 writejsdouble(fid,[modelname '.mesh.scale_factor'],self.scale_factor); 164 171 writejs1Darray(fid,[modelname '.mesh.vertexonboundary'],self.vertexonboundary); 165 172 writejs2Darray(fid,[modelname '.mesh.edges'],self.edges); -
issm/trunk-jpl/src/m/classes/mesh2d.py
r22150 r22323 24 24 self.long = float('NaN'); 25 25 self.epsg = 0; 26 self.scale_factor = float('NaN'); 26 27 27 28 self.vertexonboundary = float('NaN'); … … 68 69 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 69 70 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 71 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 70 72 return string 71 73 #}}} … … 95 97 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 96 98 md = checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[np.nan,3]); 99 if(numel(self.scale_factor)>1): 100 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 101 97 102 if solution=='ThermalSolution': 98 103 md.checkmessage("thermal not supported for 2d mesh") … … 122 127 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1) 123 128 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3) 129 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 124 130 # }}} -
issm/trunk-jpl/src/m/classes/mesh2dvertical.m
r22004 r22323 16 16 long = NaN; 17 17 epsg = NaN; 18 scale_factor = NaN; 18 19 19 20 vertexonboundary = NaN; … … 94 95 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices 1],'values',[0 1]); 95 96 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d'); 97 if numel(md.mesh.scale_factor)>1, 98 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 99 end 96 100 97 101 if strcmp(solution,'ThermalSolution') … … 125 129 fielddisplay(self,'long','vertices longitude [degrees]'); 126 130 fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 131 fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)'); 127 132 end % }}} 128 133 function marshall(self,prefix,md,fid) % {{{ … … 139 144 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonsurface','format','BooleanMat','mattype',1); 140 145 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer'); 146 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 141 147 end % }}} 142 148 function t = domaintype(self) % {{{ -
issm/trunk-jpl/src/m/classes/mesh2dvertical.py
r22267 r22323 24 24 self.long = float('NaN') 25 25 self.epsg = float('NaN') 26 self.scale_factor = float('NaN'); 26 27 27 28 self.vertexonboundary = float('NaN') … … 66 67 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 67 68 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 69 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 68 70 return string 69 71 #}}} … … 94 96 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) 95 97 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d") 98 if(numel(self.scale_factor)>1): 99 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 96 100 97 101 if solution=='ThermalSolution': … … 128 132 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','vertexonsurface','format','BooleanMat','mattype',1) 129 133 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer') 134 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 130 135 # }}} -
issm/trunk-jpl/src/m/classes/mesh3dprisms.js
r20970 r22323 34 34 checkfield(md,'fieldname','mesh.z','<=',md.geometry.surface+Math.pow(10, -10),'message','\'mesh.z\' higher than surface elevation'); 35 35 checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message','\'mesh.average_vertex_connectivity\' should be at least 24 in 3d'); 36 if(this.scale_factor.length>1) checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 36 37 } // }}} 37 38 this.disp = function() { // {{{ … … 75 76 fielddisplay(this,'long','vertices longitude [degrees]'); 76 77 fielddisplay(this,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 78 fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation)"); 77 79 } // }}} 78 80 this.marshall = function(md,prefix,fid) { // {{{ … … 95 97 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','numberofvertices2d','format','Integer'); 96 98 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','numberofelements2d','format','Integer'); 99 WriteData(fid,prefix,'object',this,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 97 100 } // }}} 98 101 this.fix=function() { //{{{ … … 109 112 this.lat=NaNFix(this.lat,NaN); 110 113 this.long=NaNFix(this.long,NaN); 114 this.scale_factor=NullFix(this.scale_factor,NaN); 111 115 }//}}} 112 116 this.domaintype = function() { // {{{) … … 135 139 this.long = NaN; 136 140 this.epsg = 0; 141 this.scale_factor = NaN; 137 142 138 143 this.vertexonbase = NaN; -
issm/trunk-jpl/src/m/classes/mesh3dprisms.m
r22004 r22323 17 17 long = NaN; 18 18 epsg = 0; 19 scale_factor = NaN; 19 20 20 21 vertexonbase = NaN; … … 120 121 md = checkmessage(md,'md.mesh.z is not consistent with md.geometry.thickness, you changed the geometry after extrusion !!'); 121 122 end 123 if numel(md.mesh.scale_factor)>1, 124 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 125 end 122 126 end % }}} 123 127 function disp(self) % {{{ … … 161 165 fielddisplay(self,'long','vertices longitude [degrees]'); 162 166 fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 167 fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)'); 163 168 end % }}} 164 169 function marshall(self,prefix,md,fid) % {{{ … … 181 186 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices2d','format','Integer'); 182 187 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements2d','format','Integer'); 188 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 183 189 end % }}} 184 190 function type = domaintype(self) % {{{ -
issm/trunk-jpl/src/m/classes/mesh3dprisms.py
r21410 r22323 25 25 self.long = float('NaN'); 26 26 self.epsg = 0; 27 self.scale_factor = float('NaN'); 27 28 28 29 self.vertexonbase = float('NaN'); … … 90 91 string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]")) 91 92 string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)")) 93 string="%s\n%s"%(string,fielddisplay(self,"scale_factor","Projection correction for volume, area, etc. computation")) 92 94 return string 93 95 #}}} … … 118 120 md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1]) 119 121 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d") 122 if(numel(self.scale_factor)>1): 123 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) 120 124 121 125 return md … … 149 153 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofvertices2d','format','Integer') 150 154 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','numberofelements2d','format','Integer') 155 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1) 151 156 # }}} -
issm/trunk-jpl/src/m/classes/mesh3dtetras.m
r22004 r22323 17 17 long = NaN; 18 18 epsg = 0; 19 scale_factor = NaN; 19 20 20 21 vertexonbase = NaN; … … 109 110 md = checkfield(md,'fieldname','mesh.z','<=',md.geometry.surface+10^-10,'message','''mesh.z'' higher than surface elevation'); 110 111 md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message','''mesh.average_vertex_connectivity'' should be at least 24 in 3d'); 112 if numel(md.mesh.scale_factor)>1, 113 md = checkfield(md,'fieldname','mesh.scale_factor','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 114 end 115 111 116 end % }}} 112 117 function disp(self) % {{{ … … 150 155 fielddisplay(self,'long','vertices longitude [degrees]'); 151 156 fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)'); 157 fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)'); 152 158 end % }}} 153 159 function marshall(self,prefix,md,fid) % {{{ … … 166 172 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','lowerelements','format','DoubleMat','mattype',2); 167 173 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','upperelements','format','DoubleMat','mattype',2); 174 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','scale_factor','format','DoubleMat','mattype',1); 168 175 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer'); 169 176 WriteData(fid,prefix,'object',self,'class','mesh','fieldname','elements2d','format','DoubleMat','mattype',3);
Note:
See TracChangeset
for help on using the changeset viewer.