Changeset 24861
- Timestamp:
- 05/15/20 20:21:50 (5 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 62 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp ¶
r24666 r24861 139 139 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum); 140 140 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 141 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);141 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 142 142 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 143 143 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp ¶
r24479 r24861 296 296 basalelement->GetVerticesCoordinates(&xyz_list); 297 297 basalelement->FindParam(&dt,TimesteppingTimeStepEnum); 298 Input2* groundedice_input = basalelement->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedice_input);298 Input2* groundedice_input = basalelement->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input); 299 299 Input2* gmb_input = basalelement->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 300 300 Input2* fmb_input = basalelement->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); … … 411 411 412 412 int numnodes = element->GetNumberOfNodes(); 413 Input2* groundedice_input = element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedice_input);413 Input2* groundedice_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input); 414 414 Input2* onbase_input = element->GetInput2(MeshVertexonbaseEnum); _assert_(onbase_input); 415 415 Input2* base_input = element->GetInput2(BaseEnum); _assert_(base_input); -
TabularUnified issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp ¶
r24335 r24861 223 223 IssmDouble *ls_active = xNew<IssmDouble>(numnodes); 224 224 225 element->GetInputListOnNodes(&mask[0],Mask GroundediceLevelsetEnum);225 element->GetInputListOnNodes(&mask[0],MaskOceanLevelsetEnum); 226 226 element->GetInputListOnNodes(&bed[0],BaseEnum); 227 227 element->GetInputListOnNodes(&ls_active[0],IceMaskNodeActivationEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp ¶
r24791 r24861 793 793 794 794 basalelement->GetInputListOnVertices(&meltingrate[0],BasalforcingsGroundediceMeltingRateEnum); 795 basalelement->GetInputListOnVertices(&groundedice[0],Mask GroundediceLevelsetEnum);795 basalelement->GetInputListOnVertices(&groundedice[0],MaskOceanLevelsetEnum); 796 796 797 797 /*if melting rate is not positive and node is not floating, deactivate*/ -
TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp ¶
r24666 r24861 136 136 } 137 137 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 138 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);138 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 139 139 iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.bump_height",HydrologyBumpHeightEnum); 140 140 iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.sheet_conductivity",HydrologySheetConductivityEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyPismAnalysis.cpp ¶
r24335 r24861 33 33 /*Add input to elements*/ 34 34 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 35 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);35 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 36 36 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 37 37 iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.drainage_rate",HydrologyDrainageRateEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp ¶
r24391 r24861 106 106 } 107 107 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 108 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);108 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 109 109 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 110 110 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp ¶
r24335 r24861 64 64 } 65 65 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 66 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);66 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 67 67 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 68 68 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.watercolumn",WatercolumnEnum); -
TabularUnified issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp ¶
r24430 r24861 244 244 vx_input=basalelement->GetInput2(VxEnum); _assert_(vx_input); 245 245 vy_input=basalelement->GetInput2(VyEnum); _assert_(vy_input); 246 gr_input=basalelement->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);246 gr_input=basalelement->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 247 247 break; 248 248 case Domain3DEnum: 249 249 vx_input=basalelement->GetInput2(VxAverageEnum); _assert_(vx_input); 250 250 vy_input=basalelement->GetInput2(VyAverageEnum); _assert_(vy_input); 251 gr_input=basalelement->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);251 gr_input=basalelement->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 252 252 break; 253 253 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); -
TabularUnified issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp ¶
r24730 r24861 150 150 iomodel->FetchDataToInput(inputs2,elements,"md.slr.sealevel",SealevelEnum,0); 151 151 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 152 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);152 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 153 153 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum); 154 154 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum); … … 622 622 Input2* gmb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 623 623 Input2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 624 Input2* gllevelset_input = element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);624 Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 625 625 Input2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input); 626 626 Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input); … … 737 737 Input2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 738 738 Input2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input); 739 Input2* gllevelset_input = element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);739 Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 740 740 Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input); 741 741 … … 858 858 basalelement->GetInputListOnVertices(&oldbase[0],BaseOldEnum); 859 859 basalelement->GetInputListOnVertices(&oldsurface[0],SurfaceOldEnum); 860 basalelement->GetInputListOnVertices(&phi[0],Mask GroundediceLevelsetEnum);860 basalelement->GetInputListOnVertices(&phi[0],MaskOceanLevelsetEnum); 861 861 basalelement->GetInputListOnVertices(&sealevel[0],SealevelEnum); 862 862 basalelement->GetInputListOnVertices(&cumdeltathickness[0],SealevelriseCumDeltathicknessOldEnum); … … 1070 1070 Input2* gmb_input = element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); 1071 1071 Input2* fmb_input = element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input); 1072 Input2* gllevelset_input = element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);1072 Input2* gllevelset_input = element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 1073 1073 Input2* ms_input = element->GetInput2(SmbMassBalanceEnum); _assert_(ms_input); 1074 1074 Input2* vxaverage_input = element->GetInput2(VxAverageEnum); _assert_(vxaverage_input); -
TabularUnified issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp ¶
r24531 r24861 35 35 36 36 /*Create inputs: */ 37 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);37 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 38 38 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 39 39 //those only if we have requested geodetic computations: -
TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp ¶
r24859 r24861 103 103 iomodel->FetchData(&nodeonFS,NULL,NULL,"md.flowequation.borderFS"); 104 104 iomodel->FetchData(&nodeonbase,NULL,NULL,"md.mesh.vertexonbase"); 105 iomodel->FetchData(&groundedice_ls,NULL,NULL,"md.mask. groundedice_levelset");105 iomodel->FetchData(&groundedice_ls,NULL,NULL,"md.mask.ocean_levelset"); 106 106 if(iomodel->domaintype==Domain3DEnum){ 107 107 iomodel->FetchData(&spcvz,&Mz,&Nz,"md.stressbalance.spcvz"); … … 130 130 iomodel->DeleteData(nodeonFS,"md.flowequation.borderFS"); 131 131 iomodel->DeleteData(nodeonbase,"md.mesh.vertexonbase"); 132 iomodel->DeleteData(groundedice_ls,"md.mask. groundedice_levelset");132 iomodel->DeleteData(groundedice_ls,"md.mask.ocean_levelset"); 133 133 134 134 /*Pressure spc*/ … … 202 202 if(iomodel->domaintype==Domain3DEnum)iomodel->FetchData(&nodeonFS,NULL,NULL,"md.flowequation.borderFS"); 203 203 if(iomodel->domaintype==Domain3DEnum)iomodel->FetchData(&nodeonbase,NULL,NULL,"md.mesh.vertexonbase"); 204 if(iomodel->domaintype==Domain3DEnum)iomodel->FetchData(&groundedice_ls,NULL,NULL,"md.mask. groundedice_levelset");204 if(iomodel->domaintype==Domain3DEnum)iomodel->FetchData(&groundedice_ls,NULL,NULL,"md.mask.ocean_levelset"); 205 205 iomodel->FetchData(&vertices_type,NULL,NULL,"md.flowequation.vertex_equation"); 206 206 iomodel->FetchData(&surface,NULL,NULL,"md.geometry.surface"); … … 432 432 if(iomodel->domaintype==Domain3DEnum)iomodel->DeleteData(nodeonFS,"md.flowequation.borderFS"); 433 433 if(iomodel->domaintype==Domain3DEnum)iomodel->DeleteData(nodeonbase,"md.mesh.vertexonbase"); 434 if(iomodel->domaintype==Domain3DEnum)iomodel->DeleteData(groundedice_ls,"md.mask. groundedice_levelset");434 if(iomodel->domaintype==Domain3DEnum)iomodel->DeleteData(groundedice_ls,"md.mask.ocean_levelset"); 435 435 iomodel->DeleteData(vertices_type,"md.flowequation.vertex_equation"); 436 436 iomodel->DeleteData(surface,"md.geometry.surface"); … … 496 496 if(numrifts){ 497 497 iomodel->FetchData(&riftinfo,&numriftsegments,NULL,"md.rifts.riftstruct"); 498 iomodel->FetchData(5,"md.rifts.riftstruct","md.geometry.thickness","md.geometry.base","md.geometry.surface","md.mask. groundedice_levelset");498 iomodel->FetchData(5,"md.rifts.riftstruct","md.geometry.thickness","md.geometry.base","md.geometry.surface","md.mask.ocean_levelset"); 499 499 for(i=0;i<numriftsegments;i++){ 500 500 if(iomodel->my_elements[reCast<int,IssmDouble>(*(riftinfo+RIFTINFOSIZE*i+2))-1]){ … … 503 503 } 504 504 } 505 iomodel->DeleteData(5,"md.rifts.riftstruct","md.geometry.thickness","md.geometry.base","md.geometry.surface","md.mask. groundedice_levelset");505 iomodel->DeleteData(5,"md.rifts.riftstruct","md.geometry.thickness","md.geometry.base","md.geometry.surface","md.mask.ocean_levelset"); 506 506 xDelete<IssmDouble>(riftinfo); 507 507 } … … 758 758 iomodel->FetchDataToInput(inputs2,elements,"md.slr.sealevel",SealevelEnum,0); 759 759 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 760 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);760 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 761 761 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum,0.); 762 762 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum,0.); … … 1442 1442 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list); 1443 1443 if(friction_style==SubelementFriction2Enum){ 1444 gllevelset_input=element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);1444 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 1445 1445 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 1446 1446 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 2480 2480 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base); 2481 2481 if(friction_style==SubelementFriction2Enum){ 2482 gllevelset_input=element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);2482 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 2483 2483 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 2484 2484 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 3963 3963 if(friction_style==SubelementFriction2Enum){ 3964 3964 if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline"); 3965 gllevelset_input=element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);3965 gllevelset_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 3966 3966 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 3967 3967 //gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); -
TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp ¶
r24335 r24861 161 161 162 162 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum); 163 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);163 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 164 164 if(ismovingfront){ 165 165 if(iomodel->domaintype!=Domain2DhorizontalEnum) -
TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp ¶
r24335 r24861 354 354 element->GetInputValue(&approximation,ApproximationEnum); 355 355 Input2* base_input=element->GetInput2(BaseEnum); _assert_(base_input); 356 Input2* groundedice_input=element->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedice_input);356 Input2* groundedice_input=element->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedice_input); 357 357 Input2* groundedice_melting_input=element->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input); 358 358 Input2* floatingice_melting_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingice_melting_input); -
TabularUnified issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp ¶
r24666 r24861 135 135 iomodel->FetchDataToInput(inputs2,elements,"md.slr.sealevel",SealevelEnum,0); 136 136 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 137 iomodel->FetchDataToInput(inputs2,elements,"md.mask. groundedice_levelset",MaskGroundediceLevelsetEnum);137 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum); 138 138 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 139 139 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.cpp ¶
r24735 r24861 1986 1986 parameters->FindParam(&migration_style,GroundinglineMigrationEnum); 1987 1987 1988 Input2* input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(input);1988 Input2* input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(input); 1989 1989 1990 1990 if(migration_style==SubelementMigrationEnum){ //Floating if all nodes are floating … … 2006 2006 bool Element::IsGrounded(){/*{{{*/ 2007 2007 2008 Input2* input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(input);2008 Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input); 2009 2009 if(input->GetInputMax() > 0.){ 2010 2010 return true; … … 2258 2258 GetInputListOnVertices(&r[0],BedEnum); 2259 2259 GetInputListOnVertices(&sl[0],SealevelEnum); 2260 GetInputListOnVertices(&phi[0],Mask GroundediceLevelsetEnum);2260 GetInputListOnVertices(&phi[0],MaskOceanLevelsetEnum); 2261 2261 rho_water = FindParam(MaterialsRhoSeawaterEnum); 2262 2262 rho_ice = FindParam(MaterialsRhoIceEnum); … … 2312 2312 } 2313 2313 } 2314 this->AddInput2(Mask GroundediceLevelsetEnum,&phi[0],P1Enum);2314 this->AddInput2(MaskOceanLevelsetEnum,&phi[0],P1Enum); 2315 2315 2316 2316 /*Update inputs*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp ¶
r24790 r24861 287 287 Input2* vx_input = this->GetInput2(VxAverageEnum); _assert_(vx_input); 288 288 Input2* vy_input = this->GetInput2(VyAverageEnum); _assert_(vy_input); 289 Input2* gr_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);289 Input2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 290 290 Input2* bs_input = this->GetInput2(BaseEnum); _assert_(bs_input); 291 291 Input2* B_input = this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input); … … 1247 1247 Element::GetInputListOnVertices(&surface[0],SurfaceEnum); 1248 1248 Element::GetInputListOnVertices(&pressure[0],PressureEnum); 1249 Element::GetInputListOnVertices(&phi[0],Mask GroundediceLevelsetEnum);1249 Element::GetInputListOnVertices(&phi[0],MaskOceanLevelsetEnum); 1250 1250 IssmDouble rho_ice = FindParam(MaterialsRhoIceEnum); 1251 1251 IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum); … … 1386 1386 1387 1387 /*Recover parameters and values*/ 1388 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);1388 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 1389 1389 1390 1390 /*Be sure that values are not zero*/ … … 1440 1440 1441 1441 /*Recover parameters and values*/ 1442 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);1442 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 1443 1443 1444 1444 /*Be sure that values are not zero*/ … … 2069 2069 if(!IsOnBase()) return 0; 2070 2070 if(!IsIceInElement()) return 0; 2071 if(!IsZeroLevelset(Mask GroundediceLevelsetEnum)) return 0;2071 if(!IsZeroLevelset(MaskOceanLevelsetEnum)) return 0; 2072 2072 2073 2073 /*Scaled not implemented yet...*/ … … 2084 2084 2085 2085 /*Recover parameters and values*/ 2086 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);2086 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 2087 2087 2088 2088 /*Be sure that values are not zero*/ … … 3188 3188 Element::GetInputListOnVertices(&h[0],ThicknessEnum); 3189 3189 Element::GetInputListOnVertices(&r[0],BedEnum); 3190 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);3190 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 3191 3191 3192 3192 /*go through vertices, and figure out which ones are on the ice sheet, and want to unground: */ … … 3282 3282 Input2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input); 3283 3283 Input2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input); 3284 Input2* groundedicelevelset_input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedicelevelset_input);3284 Input2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 3285 3285 3286 3286 /*Loop over basal nodes and update their CS*/ … … 4174 4174 rho_ice=FindParam(MaterialsRhoIceEnum); 4175 4175 Input2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 4176 Input2* gllevelset_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);4176 Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4177 4177 Input2* scalefactor_input = NULL; 4178 4178 if(scaled==true){ … … 4219 4219 rho_ice=FindParam(MaterialsRhoIceEnum); 4220 4220 Input2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 4221 Input2* gllevelset_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);4221 Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4222 4222 Input2* scalefactor_input = NULL; 4223 4223 if(scaled==true){ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Seg.cpp ¶
r24434 r24861 264 264 265 265 /*Recover parameters and values*/ 266 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);266 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 267 267 268 268 /*Be sure that values are not zero*/ -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp ¶
r24434 r24861 697 697 Input2* slopex_input=this->GetInput2(BedSlopeXEnum); _assert_(slopex_input); 698 698 Input2* slopey_input=this->GetInput2(BedSlopeYEnum); _assert_(slopey_input); 699 Input2* groundedicelevelset_input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedicelevelset_input);699 Input2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 700 700 vertexonbase = xNew<IssmDouble>(numnodes); 701 701 this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum); -
TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp ¶
r24822 r24861 314 314 Input2* vy_input = this->GetInput2(VyEnum); _assert_(vy_input); 315 315 Input2* B_input = this->GetInput2(MaterialsRheologyBbarEnum); _assert_(B_input); 316 Input2* gr_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);316 Input2* gr_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 317 317 Input2* bs_input = this->GetInput2(BaseEnum); _assert_(bs_input); 318 318 Input2* smax_fl_input = this->GetInput2(CalvingStressThresholdFloatingiceEnum); _assert_(smax_fl_input); … … 1366 1366 Element::GetInputListOnVertices(&surface[0],SurfaceEnum); 1367 1367 Element::GetInputListOnVertices(&pressure[0],PressureEnum); 1368 Element::GetInputListOnVertices(&phi[0],Mask GroundediceLevelsetEnum);1368 Element::GetInputListOnVertices(&phi[0],MaskOceanLevelsetEnum); 1369 1369 IssmDouble rho_ice = FindParam(MaterialsRhoIceEnum); 1370 1370 IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum); … … 1572 1572 1573 1573 /*Recover parameters and values*/ 1574 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);1574 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 1575 1575 1576 1576 /*Be sure that values are not zero*/ … … 1628 1628 /*Recover parameters and values*/ 1629 1629 parameters->FindParam(&domaintype,DomainTypeEnum); 1630 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);1630 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 1631 1631 1632 1632 /*Be sure that values are not zero*/ … … 2878 2878 /*Make sure there is a grounding line here*/ 2879 2879 if(!IsIceInElement()) return 0; 2880 if(!IsZeroLevelset(Mask GroundediceLevelsetEnum)) return 0;2880 if(!IsZeroLevelset(MaskOceanLevelsetEnum)) return 0; 2881 2881 2882 2882 /*Scaled not implemented yet...*/ … … 2894 2894 /*Recover parameters and values*/ 2895 2895 parameters->FindParam(&domaintype,DomainTypeEnum); 2896 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);2896 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 2897 2897 2898 2898 /*Be sure that values are not zero*/ … … 3826 3826 Element::GetInputListOnVertices(&h[0],ThicknessEnum); 3827 3827 Element::GetInputListOnVertices(&r[0],BedEnum); 3828 Element::GetInputListOnVertices(&gl[0],Mask GroundediceLevelsetEnum);3828 Element::GetInputListOnVertices(&gl[0],MaskOceanLevelsetEnum); 3829 3829 3830 3830 /*go through vertices, and figure out which ones are grounded and want to unground: */ … … 3897 3897 /*Get inputs*/ 3898 3898 Input2* slope_input=this->GetInput2(BedSlopeXEnum); _assert_(slope_input); 3899 Input2* groundedicelevelset_input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(groundedicelevelset_input);3899 Input2* groundedicelevelset_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(groundedicelevelset_input); 3900 3900 vertexonbase = xNew<IssmDouble>(numnodes); 3901 3901 this->GetInputListOnNodesVelocity(&vertexonbase[0],MeshVertexonbaseEnum); … … 4643 4643 rho_ice=FindParam(MaterialsRhoIceEnum); 4644 4644 Input2* floatingmelt_input = this->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 4645 Input2* gllevelset_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);4645 Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4646 4646 Input2* scalefactor_input = NULL; 4647 4647 if(scaled==true){ … … 4688 4688 rho_ice=FindParam(MaterialsRhoIceEnum); 4689 4689 Input2* groundedmelt_input = this->GetInput2(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 4690 Input2* gllevelset_input = this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gllevelset_input);4690 Input2* gllevelset_input = this->GetInput2(MaskOceanLevelsetEnum); _assert_(gllevelset_input); 4691 4691 Input2* scalefactor_input = NULL; 4692 4692 if(scaled==true){ … … 5623 5623 5624 5624 /*early return if we are fully floating:*/ 5625 Input2* gr_input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);5625 Input2* gr_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 5626 5626 if (gr_input->GetInputMax()<=0){ 5627 5627 constant=0; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); … … 6129 6129 6130 6130 /*early return if we are fully floating: */ 6131 Input2* gr_input=this->GetInput2(Mask GroundediceLevelsetEnum); _assert_(gr_input);6131 Input2* gr_input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(gr_input); 6132 6132 if(gr_input->GetInputMax()<=0)return; 6133 6133 -
TabularUnified issm/trunk-jpl/src/c/classes/FemModel.cpp ¶
r24791 r24861 3350 3350 3351 3351 /*Update inputs*/ 3352 element->AddInput2(Mask GroundediceLevelsetEnum,&phi[0],P1Enum);3352 element->AddInput2(MaskOceanLevelsetEnum,&phi[0],P1Enum); 3353 3353 element->AddInput2(ThicknessEnum,&h[0],P1Enum); 3354 3354 element->AddInput2(BaseEnum,&b[0],P1Enum); … … 3669 3669 3670 3670 return; 3671 }3672 /*}}}*/3673 void FemModel::GetGroundediceLevelSet(IssmDouble **pmasklevelset){/*{{{*/3674 3675 int elementswidth = this->GetElementsWidth();//just 2D mesh, tria elements3676 int numberofvertices = this->vertices->NumberOfVertices();3677 3678 IssmDouble* elementlevelset=xNew<IssmDouble>(elementswidth);3679 int* elem_vertices=xNew<int>(elementswidth);3680 Vector<IssmDouble>* vmasklevelset=new Vector<IssmDouble>(numberofvertices);3681 3682 for(int i=0;i<this->elements->Size();i++){3683 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));3684 element->GetInputListOnVertices(elementlevelset,MaskGroundediceLevelsetEnum);3685 element->GetVerticesSidList(elem_vertices);3686 vmasklevelset->SetValue(elem_vertices[0],elementlevelset[0],INS_VAL);3687 vmasklevelset->SetValue(elem_vertices[1],elementlevelset[1],INS_VAL);3688 vmasklevelset->SetValue(elem_vertices[2],elementlevelset[2],INS_VAL);3689 }3690 3691 /*Assemble*/3692 vmasklevelset->Assemble();3693 3694 /*Serialize and set output*/3695 (*pmasklevelset)=vmasklevelset->ToMPISerial();3696 3697 /*Cleanup*/3698 xDelete<IssmDouble>(elementlevelset);3699 xDelete<int>(elem_vertices);3700 delete vmasklevelset;3701 3702 3671 } 3703 3672 /*}}}*/ … … 4366 4335 for(int i=0;i<this->elements->Size();i++){ 4367 4336 Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i)); 4368 element->GetInputListOnVertices(elementlevelset,Mask GroundediceLevelsetEnum);4337 element->GetInputListOnVertices(elementlevelset,MaskOceanLevelsetEnum); 4369 4338 int sid = element->Sid(); 4370 4339 vmasklevelset->SetValue(sid,(elementlevelset[0]+elementlevelset[1]+elementlevelset[2])/3.,INS_VAL); … … 4431 4400 /*Here, "zero level set" means grounding line or ice front, depending on the level set type*/ 4432 4401 /*pzerolevelset_points are the element center points with zero level set. X and Y coords*/ 4433 if(levelset_type!=Mask GroundediceLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){4402 if(levelset_type!=MaskOceanLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){ 4434 4403 _error_("level set type not implemented yet!"); 4435 4404 } … … 5418 5387 if(this->amrbamg->thicknesserror_threshold>0) this->GethmaxVerticesFromEstimators(hmaxvertices_serial,ThicknessErrorEstimatorEnum); 5419 5388 if(this->amrbamg->deviatoricerror_threshold>0) this->GethmaxVerticesFromEstimators(hmaxvertices_serial,DeviatoricStressErrorEstimatorEnum); 5420 if(this->amrbamg->groundingline_distance>0) this->GethmaxVerticesFromZeroLevelSetDistance(hmaxvertices_serial,Mask GroundediceLevelsetEnum);5389 if(this->amrbamg->groundingline_distance>0) this->GethmaxVerticesFromZeroLevelSetDistance(hmaxvertices_serial,MaskOceanLevelsetEnum); 5421 5390 if(this->amrbamg->icefront_distance>0) this->GethmaxVerticesFromZeroLevelSetDistance(hmaxvertices_serial,MaskIceLevelsetEnum); 5422 5391 } … … 5530 5499 5531 5500 switch(levelset_type){ 5532 case Mask GroundediceLevelsetEnum:5501 case MaskOceanLevelsetEnum: 5533 5502 threshold = this->amrbamg->groundingline_distance; 5534 5503 resolution = this->amrbamg->groundingline_resolution; … … 5692 5661 /*Here, "zero level set" means grounding line or ice front, depending on the level set type*/ 5693 5662 /*pverticedistance is the minimal vertice distance to the grounding line or ice front*/ 5694 if(levelset_type!=Mask GroundediceLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){5663 if(levelset_type!=MaskOceanLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){ 5695 5664 _error_("level set type not implemented yet!"); 5696 5665 } … … 5754 5723 5755 5724 /*Get fields, if requested*/ 5756 if(this->amr->groundingline_distance>0) this->GetElementDistanceToZeroLevelSet(&gl_distance,Mask GroundediceLevelsetEnum);5725 if(this->amr->groundingline_distance>0) this->GetElementDistanceToZeroLevelSet(&gl_distance,MaskOceanLevelsetEnum); 5757 5726 if(this->amr->icefront_distance>0) this->GetElementDistanceToZeroLevelSet(&if_distance,MaskIceLevelsetEnum); 5758 5727 if(this->amr->thicknesserror_threshold>0) this->ThicknessZZErrorEstimator(&thicknesserror); … … 5856 5825 /*Here, "zero level set" means grounding line or ice front, depending on the level set type*/ 5857 5826 /*pverticedistance is the minimal vertice distance to the grounding line or ice front*/ 5858 if(levelset_type!=Mask GroundediceLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){5827 if(levelset_type!=MaskOceanLevelsetEnum && levelset_type!=MaskIceLevelsetEnum){ 5859 5828 _error_("level set type not implemented yet!"); 5860 5829 } -
TabularUnified issm/trunk-jpl/src/c/classes/FemModel.h ¶
r24790 r24861 195 195 void SetMesh(int** elementslist, IssmDouble** x, IssmDouble** y, int* numberofvertices, int* numberofelements); 196 196 void GetMeshOnPartition(Vertices* femmodel_vertices,Elements* femmodel_elements,IssmDouble** px, IssmDouble** py, IssmDouble** pz, int** pelementslist,int** psidtoindex); 197 void GetGroundediceLevelSet(IssmDouble** pmasklevelset);198 197 void CreateElements(int newnumberofelements,int elementswidth,int* newelementslist,bool* my_elements,Elements* elements); 199 198 void CreateMaterials(int newnumberofelements,bool* my_elements,Materials* materials); -
TabularUnified issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp ¶
r24623 r24861 86 86 this->friction=*(iomodel->Data("md.rifts.riftstruct")+RIFTINFOSIZE*i+8); 87 87 this->fractionincrement=*(iomodel->Data("md.rifts.riftstruct")+RIFTINFOSIZE*i+10); 88 this->shelf=reCast<bool,IssmDouble>(iomodel->Data("md.mask. groundedice_levelset")[node1-1]<0.);88 this->shelf=reCast<bool,IssmDouble>(iomodel->Data("md.mask.ocean_levelset")[node1-1]<0.); 89 89 90 90 //parameters and hooked fields: we still can't point to them, they may not even exist. Configure will handle this. -
TabularUnified issm/trunk-jpl/src/c/cores/transient_core.cpp ¶
r24240 r24861 197 197 GroundinglineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 198 198 199 femmodel->parameters->SetParam(Mask GroundediceLevelsetEnum,InputToExtrudeEnum);199 femmodel->parameters->SetParam(MaskOceanLevelsetEnum,InputToExtrudeEnum); 200 200 extrudefrombase_core(femmodel); 201 201 femmodel->parameters->SetParam(BaseEnum,InputToExtrudeEnum); … … 208 208 209 209 if(save_results){ 210 int outputs[3] = {SurfaceEnum,BaseEnum,Mask GroundediceLevelsetEnum};210 int outputs[3] = {SurfaceEnum,BaseEnum,MaskOceanLevelsetEnum}; 211 211 femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],3); 212 212 } … … 232 232 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results); 233 233 if(isgroundingline && (groundingline_migration==AggressiveMigrationEnum || groundingline_migration==ContactEnum)){ 234 int outputs[1] = {Mask GroundediceLevelsetEnum};234 int outputs[1] = {MaskOceanLevelsetEnum}; 235 235 femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results); 236 236 } -
TabularUnified issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatePicox/FloatingiceMeltingRatePicox.cpp ¶
r24335 r24861 46 46 IssmDouble* dmax_basin_cpu=xNew<IssmDouble>(num_basins); 47 47 48 InputDuplicatex(femmodel,Mask GroundediceLevelsetEnum,DistanceToGroundinglineEnum);49 femmodel->DistanceToFieldValue(Mask GroundediceLevelsetEnum,0.,DistanceToGroundinglineEnum);48 InputDuplicatex(femmodel,MaskOceanLevelsetEnum,DistanceToGroundinglineEnum); 49 femmodel->DistanceToFieldValue(MaskOceanLevelsetEnum,0.,DistanceToGroundinglineEnum); 50 50 51 51 InputDuplicatex(femmodel,MaskIceLevelsetEnum,DistanceToCalvingfrontEnum); -
TabularUnified issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp ¶
r23066 r24861 137 137 for(i=0;i<elements->Size();i++){ 138 138 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 139 element->GetVectorFromInputs(vec_phi,Mask GroundediceLevelsetEnum,VertexPIdEnum);139 element->GetVectorFromInputs(vec_phi,MaskOceanLevelsetEnum,VertexPIdEnum); 140 140 } 141 141 vec_phi->Assemble(); -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/Enum.vim ¶
r24791 r24861 625 625 syn keyword cConstant LoadingforceYEnum 626 626 syn keyword cConstant LoadingforceZEnum 627 syn keyword cConstant Mask GroundediceLevelsetEnum627 syn keyword cConstant MaskOceanLevelsetEnum 628 628 syn keyword cConstant MaskIceLevelsetEnum 629 629 syn keyword cConstant MaskLandLevelsetEnum 630 syn keyword cConstant MaskOceanLevelsetEnum631 630 syn keyword cConstant MasstransportSpcthicknessEnum 632 631 syn keyword cConstant MaterialsRheologyBEnum -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h ¶
r24791 r24861 622 622 LoadingforceYEnum, 623 623 LoadingforceZEnum, 624 Mask GroundediceLevelsetEnum,624 MaskOceanLevelsetEnum, 625 625 MaskIceLevelsetEnum, 626 626 MaskLandLevelsetEnum, 627 MaskOceanLevelsetEnum,628 627 MasstransportSpcthicknessEnum, 629 628 MaterialsRheologyBEnum, -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp ¶
r24791 r24861 627 627 case LoadingforceYEnum : return "LoadingforceY"; 628 628 case LoadingforceZEnum : return "LoadingforceZ"; 629 case Mask GroundediceLevelsetEnum : return "MaskGroundediceLevelset";629 case MaskOceanLevelsetEnum : return "MaskOceanLevelset"; 630 630 case MaskIceLevelsetEnum : return "MaskIceLevelset"; 631 631 case MaskLandLevelsetEnum : return "MaskLandLevelset"; 632 case MaskOceanLevelsetEnum : return "MaskOceanLevelset";633 632 case MasstransportSpcthicknessEnum : return "MasstransportSpcthickness"; 634 633 case MaterialsRheologyBEnum : return "MaterialsRheologyB"; -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp ¶
r24791 r24861 642 642 else if (strcmp(name,"LoadingforceY")==0) return LoadingforceYEnum; 643 643 else if (strcmp(name,"LoadingforceZ")==0) return LoadingforceZEnum; 644 else if (strcmp(name,"Mask GroundediceLevelset")==0) return MaskGroundediceLevelsetEnum;644 else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum; 645 645 else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum; 646 646 else if (strcmp(name,"MaskLandLevelset")==0) return MaskLandLevelsetEnum; 647 else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;648 647 else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum; 649 648 else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum; … … 752 751 else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum; 753 752 else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 753 else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 758 else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum; 757 if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum; 759 758 else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum; 760 759 else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum; … … 875 874 else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 876 875 else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; 876 else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 881 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; 880 if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; 882 881 else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum; 883 882 else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum; … … 998 997 else if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum; 999 998 else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 999 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 1004 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 1003 if (strcmp(name,"BoolInput")==0) return BoolInputEnum; 1005 1004 else if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum; 1006 1005 else if (strcmp(name,"IntInput2")==0) return IntInput2Enum; … … 1121 1120 else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1122 1121 else if (strcmp(name,"IceVolumeAboveFloatationScaled")==0) return IceVolumeAboveFloatationScaledEnum; 1122 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; 1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; 1127 else if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum; 1126 if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum; 1128 1127 else if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum; 1129 1128 else if (strcmp(name,"IcefrontMassFluxLevelset")==0) return IcefrontMassFluxLevelsetEnum; … … 1244 1243 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 1245 1244 else if (strcmp(name,"Profiler")==0) return ProfilerEnum; 1245 else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum; 1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum; 1250 else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum; 1249 if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum; 1251 1250 else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum; 1252 1251 else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; -
TabularUnified issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m ¶
r20534 r24861 33 33 else 34 34 %Guess where the ice front is 35 pos=find(sum(md.mask. groundedice_levelset(md.mesh.elements)<0.,2) >0.);35 pos=find(sum(md.mask.ocean_levelset(md.mesh.elements)<0.,2) >0.); 36 36 vertexonfloatingice=zeros(md.mesh.numberofvertices,1); 37 37 vertexonfloatingice(md.mesh.elements(pos,:))=1.; … … 102 102 if (length(md.basalforcings.geothermalflux)~=md.mesh.numberofvertices), 103 103 md.basalforcings.geothermalflux=zeros(md.mesh.numberofvertices,1); 104 md.basalforcings.geothermalflux(find(md.mask. groundedice_levelset>0.))=50.*10.^-3; %50mW/m2104 md.basalforcings.geothermalflux(find(md.mask.ocean_levelset>0.))=50.*10.^-3; %50mW/m2 105 105 end 106 106 else -
TabularUnified issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py ¶
r24256 r24861 32 32 #Guess where the ice front is 33 33 vertexonfloatingice = np.zeros((md.mesh.numberofvertices)) 34 pos = np.nonzero(np.sum(md.mask. groundedice_levelset[md.mesh.elements - 1] < 0., axis=1) > 0.)[0]34 pos = np.nonzero(np.sum(md.mask.ocean_levelset[md.mesh.elements - 1] < 0., axis=1) > 0.)[0] 35 35 vertexonfloatingice[md.mesh.elements[pos].astype(int) - 1] = 1. 36 36 vertexonicefront = np.logical_and(np.reshape(md.mesh.vertexonboundary, (-1, )), vertexonfloatingice > 0.) … … 103 103 if not isinstance(md.basalforcings.geothermalflux, np.ndarray) or not np.size(md.basalforcings.geothermalflux, axis=0) == md.mesh.numberofvertices: 104 104 md.basalforcings.geothermalflux = np.zeros((md.mesh.numberofvertices)) 105 md.basalforcings.geothermalflux[np.nonzero(md.mask. groundedice_levelset > 0.)] = 50. * 10.**- 3 #50mW / m2105 md.basalforcings.geothermalflux[np.nonzero(md.mask.ocean_levelset > 0.)] = 50. * 10.**- 3 #50mW / m2 106 106 else: 107 107 print(" no thermal boundary conditions created: no observed temperature found") -
TabularUnified issm/trunk-jpl/src/m/classes/flowequation.m ¶
r22304 r24861 129 129 if ismember('StressbalanceSIAAnalysis',analyses), 130 130 if any(self.element_equation==1), 131 if(self.vertex_equation & md.mask. groundedice_levelset<0.),131 if(self.vertex_equation & md.mask.ocean_levelset<0.), 132 132 disp(sprintf('\n !!! Warning: SIA''s model is not consistent on ice shelves !!!\n')); 133 133 end -
TabularUnified issm/trunk-jpl/src/m/classes/flowequation.py ¶
r24213 r24861 120 120 if 'StressbalanceSIAAnalysis' in analyses: 121 121 if any(self.element_equation == 1): 122 if np.any(np.logical_and(self.vertex_equation, md.mask. groundedice_levelset)):122 if np.any(np.logical_and(self.vertex_equation, md.mask.ocean_levelset)): 123 123 print("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n") 124 124 -
TabularUnified issm/trunk-jpl/src/m/classes/geometry.m ¶
r24742 r24861 72 72 md = checkmessage(md,['base<bed on one or more vertex']); 73 73 end 74 pos = find(md.mask. groundedice_levelset>0);74 pos = find(md.mask.ocean_levelset>0); 75 75 if any(abs(self.bed(pos)-self.base(pos))>10^-9), 76 76 md = checkmessage(md,['equality base=bed on grounded ice violated']); -
TabularUnified issm/trunk-jpl/src/m/classes/geometry.py ¶
r24261 r24861 64 64 if np.any(self.bed - self.base > 10**-12): 65 65 md.checkmessage('base < bed on one or more vertex') 66 pos = np.where(md.mask. groundedice_levelset > 0)66 pos = np.where(md.mask.ocean_levelset > 0) 67 67 if np.any(np.abs(self.bed[pos] - self.base[pos]) > 10**-9): 68 68 md.checkmessage('equality base = bed on grounded ice violated') -
TabularUnified issm/trunk-jpl/src/m/classes/groundingline.m ¶
r23354 r24861 37 37 md = checkmessage(md,['requesting grounding line migration, but bathymetry is absent!']); 38 38 end 39 pos=find(md.mask. groundedice_levelset>0. & md.mask.ice_levelset<=0);39 pos=find(md.mask.ocean_levelset>0. & md.mask.ice_levelset<=0); 40 40 if any(abs(md.geometry.base(pos)-md.geometry.bed(pos))>10^-10), 41 41 md = checkmessage(md,['base not equal to bed on grounded ice!']); 42 42 end 43 pos=find(md.mask. groundedice_levelset<=0. & md.mask.ice_levelset<=0);43 pos=find(md.mask.ocean_levelset<=0. & md.mask.ice_levelset<=0); 44 44 if any(md.geometry.bed(pos) - md.geometry.base(pos) > 10^-9), 45 45 md = checkmessage(md,['bed superior to base on floating ice!']); -
TabularUnified issm/trunk-jpl/src/m/classes/groundingline.py ¶
r24261 r24861 52 52 if np.any(np.isnan(md.geometry.bed)): 53 53 md.checkmessage("requesting grounding line migration, but bathymetry is absent!") 54 pos = np.nonzero(md.mask. groundedice_levelset > 0.)[0]54 pos = np.nonzero(md.mask.ocean_levelset > 0.)[0] 55 55 if any(np.abs(md.geometry.base[pos] - md.geometry.bed[pos]) > 10**-10): 56 56 md.checkmessage("base not equal to bed on grounded ice!") -
TabularUnified issm/trunk-jpl/src/m/classes/mask.m ¶
r23466 r24861 6 6 classdef mask 7 7 properties (SetAccess=public) 8 groundedice_levelset = NaN;8 ocean_levelset = NaN; 9 9 ice_levelset = NaN; 10 10 end … … 23 23 methods 24 24 function self = extrude(self,md) % {{{ 25 self. groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');25 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node'); 26 26 self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node'); 27 27 end % }}} … … 40 40 if strcmpi(solution,'LoveSolution'), return; end; 41 41 42 md = checkfield(md,'fieldname','mask. groundedice_levelset','timeseries',1,'NaN',1);42 md = checkfield(md,'fieldname','mask.ocean_levelset','timeseries',1,'NaN',1); 43 43 md = checkfield(md,'fieldname','mask.ice_levelset','NaN',1,'size',[md.mesh.numberofvertices 1]); 44 44 isice=(md.mask.ice_levelset<=0); … … 50 50 disp(sprintf(' masks:')); 51 51 52 fielddisplay(self,' groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');52 fielddisplay(self,'ocean_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0'); 53 53 fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0'); 54 54 end % }}} 55 55 function marshall(self,prefix,md,fid) % {{{ 56 WriteData(fid,prefix,'object',self,'fieldname',' groundedice_levelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);56 WriteData(fid,prefix,'object',self,'fieldname','ocean_levelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 57 57 WriteData(fid,prefix,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1); 58 58 end % }}} 59 59 function savemodeljs(self,fid,modelname) % {{{ 60 60 61 writejs1Darray(fid,[modelname '.mask. groundedice_levelset'],self.groundedice_levelset);61 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset); 62 62 writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset); 63 63 -
TabularUnified issm/trunk-jpl/src/m/classes/mask.py ¶
r24213 r24861 16 16 def __init__(self): # {{{ 17 17 self.ice_levelset = float('NaN') 18 self. groundedice_levelset = float('NaN')18 self.ocean_levelset = float('NaN') 19 19 20 20 #set defaults … … 26 26 string = " masks:" 27 27 28 string = "%s\n%s" % (string, fielddisplay(self, " groundedice_levelset", "is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0"))28 string = "%s\n%s" % (string, fielddisplay(self, "ocean_levelset", "is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0")) 29 29 string = "%s\n%s" % (string, fielddisplay(self, "ice_levelset", "presence of ice if < 0, icefront position if = 0, no ice if > 0")) 30 30 return string … … 33 33 def extrude(self, md): # {{{ 34 34 self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node') 35 self. groundedice_levelset = project3d(md, 'vector', self.groundedice_levelset, 'type', 'node')35 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node') 36 36 return self 37 37 #}}} … … 54 54 55 55 def marshall(self, prefix, md, fid): # {{{ 56 WriteData(fid, prefix, 'object', self, 'fieldname', ' groundedice_levelset', 'format', 'DoubleMat', 'mattype', 1)56 WriteData(fid, prefix, 'object', self, 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1) 57 57 WriteData(fid, prefix, 'object', self, 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1) 58 58 # }}} -
TabularUnified issm/trunk-jpl/src/m/classes/maskpsl.m ¶
r23032 r24861 6 6 classdef maskpsl 7 7 properties (SetAccess=public) 8 groundedice_levelset = NaN;8 ocean_levelset = NaN; 9 9 ice_levelset = NaN; 10 10 ocean_levelset = NaN; … … 20 20 methods 21 21 function self = extrude(self,md) % {{{ 22 self. groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');22 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node'); 23 23 self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node'); 24 24 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node'); … … 40 40 if strcmpi(solution,'LoveSolution'), return; end; 41 41 42 md = checkfield(md,'fieldname','mask. groundedice_levelset','size',[md.mesh.numberofvertices 1]);42 md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]); 43 43 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices 1]); 44 44 md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]); … … 47 47 function disp(self) % {{{ 48 48 disp(sprintf(' masks:')); 49 fielddisplay(self,' groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');49 fielddisplay(self,'ocean_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0'); 50 50 fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0'); 51 51 fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0'); … … 55 55 function marshall(self,prefix,md,fid) % {{{ 56 56 WriteData(fid,prefix,'name','md.mask.type','data',class(md.mask),'format','String'); 57 WriteData(fid,prefix,'object',self,'class','mask','fieldname',' groundedice_levelset','format','DoubleMat','mattype',1);57 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); 58 58 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1); 59 59 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); … … 62 62 function savemodeljs(self,fid,modelname) % {{{ 63 63 fprintf(fid,'%s.mask=new maskpsl();\n',modelname); 64 writejs1Darray(fid,[modelname '.mask. groundedice_levelset'],self.groundedice_levelset);64 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset); 65 65 writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset); 66 66 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset); -
TabularUnified issm/trunk-jpl/src/m/classes/maskpsl.py ¶
r24213 r24861 14 14 15 15 def __init__(self, *args): # {{{ 16 self. groundedice_levelset = float('NaN')16 self.ocean_levelset = float('NaN') 17 17 self.ice_levelset = float('NaN') 18 18 self.ocean_levelset = float('NaN') … … 27 27 def __repr__(self): # {{{ 28 28 string = ' masks:' 29 string = "%s\n%s" % (string, fielddisplay(self, ' groundedice_levelset', 'is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0'))29 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0')) 30 30 string = "%s\n%s" % (string, fielddisplay(self, 'ice_levelset', 'presence of ice if < 0, icefront position if = 0, no ice if > 0')) 31 31 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is the vertex on the ocean ? yes if = 1, no if = 0')) … … 50 50 51 51 def checkconsistency(self, md, solution, analyses): # {{{ 52 md = checkfield(md, 'fieldname', 'mask. groundedice_levelset', 'size', [md.mesh.numberofvertices])52 md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices]) 53 53 md = checkfield(md, 'fieldname', 'mask.ice_levelset', 'size', [md.mesh.numberofvertices]) 54 54 md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices]) … … 72 72 73 73 def extrude(self, md): # {{{ 74 self. groundedice_levelset = project3d(md, 'vector', self.groundedice_levelset, 'type', 'node')74 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node') 75 75 self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node') 76 76 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node') … … 90 90 def marshall(self, prefix, md, fid): # {{{ 91 91 WriteData(fid, prefix, 'name', 'md.mask.type', 'data', type(md.mask).__name__, 'format', 'String') 92 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', ' groundedice_levelset', 'format', 'DoubleMat', 'mattype', 1)92 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1) 93 93 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1) 94 94 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1) … … 97 97 98 98 def savemodeljs(self, fid, modelname): # {{{ 99 writejs1Darray(fid, [modelname, '.mask. groundedice_levelset'], self.groundedice_levelset)99 writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset) 100 100 writejs1Darray(fid, [modelname, '.mask.ice_levelset'], self.ice_levelset) 101 101 writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset) -
TabularUnified issm/trunk-jpl/src/m/classes/model.m ¶
r24738 r24861 363 363 end 364 364 365 if ~isnan(md.mask. groundedice_levelset),366 md.mask. groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1);365 if ~isnan(md.mask.ocean_levelset), 366 md.mask.ocean_levelset=project2d(md,md.mask.ocean_levelset,1); 367 367 end 368 368 if ~isnan(md.mask.ice_levelset), -
TabularUnified issm/trunk-jpl/src/m/classes/model.py ¶
r24593 r24861 841 841 if isinstance(md.geometry.bed, np.ndarray): 842 842 md.geometry.bed = project2d(md, md.geometry.bed, 1) 843 md.mask. groundedice_levelset = project2d(md, md.mask.groundedice_levelset, 1)843 md.mask.ocean_levelset = project2d(md, md.mask.ocean_levelset, 1) 844 844 md.mask.ice_levelset = project2d(md, md.mask.ice_levelset, 1) 845 845 -
TabularUnified issm/trunk-jpl/src/m/classes/stressbalance.m ¶
r24292 r24861 101 101 end 102 102 %singular solution 103 if ((~(any(~isnan(md.stressbalance.spcvx)) | any(~isnan(md.stressbalance.spcvy)))) & ~any(md.mask. groundedice_levelset>0)),103 if ((~(any(~isnan(md.stressbalance.spcvx)) | any(~isnan(md.stressbalance.spcvy)))) & ~any(md.mask.ocean_levelset>0)), 104 104 disp(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n')); 105 105 end … … 117 117 %CHECK THAT NO rotation specified for FS Grounded ice at base 118 118 if strcmp(domaintype(md.mesh),'3D') & md.flowequation.isFS, 119 pos=find(md.mask. groundedice_levelset>0. & md.mesh.vertexonbase);119 pos=find(md.mask.ocean_levelset>0. & md.mesh.vertexonbase); 120 120 if any(~isnan(md.stressbalance.referential(pos,:))), 121 121 md = checkmessage(md,['no referential should be specified for basal vertices of grounded ice']); -
TabularUnified issm/trunk-jpl/src/m/classes/stressbalance.py ¶
r24292 r24861 156 156 #CHECK THAT NO rotation specified for FS Grounded ice at base 157 157 if m.strcmp(md.mesh.domaintype(), '3D') and md.flowequation.isFS: 158 pos = np.nonzero(np.logical_and(md.mask. groundedice_levelset, md.mesh.vertexonbase))158 pos = np.nonzero(np.logical_and(md.mask.ocean_levelset, md.mesh.vertexonbase)) 159 159 if np.any(np.logical_not(np.isnan(md.stressbalance.referential[pos, :]))): 160 160 md.checkmessage("no referential should be specified for basal vertices of grounded ice") -
TabularUnified issm/trunk-jpl/src/m/contrib/larour/ecco/MeltingGroundingLines.m ¶
r15987 r24861 7 7 8 8 %get nodes on ice sheet and on ice shelf 9 pos_shelf=find(md.mask. groundedice_levelset<0.);9 pos_shelf=find(md.mask.ocean_levelset<0.); 10 10 pos_GL=intersect(unique(md.mesh.elements(find(md.mask.elementongroundedice),:)),unique(md.mesh.elements(find(md.mask.elementonfloatingice),:))); 11 11 -
TabularUnified issm/trunk-jpl/src/m/contrib/morlighem/dassflow/exportgmsh.m ¶
r16366 r24861 1 function exportgmsh(mesh, groundedice_levelset,filename),1 function exportgmsh(mesh,ocean_levelset,filename), 2 2 %EXPORTGMSH - export mesh to gmsh format 3 3 % … … 5 5 % 6 6 % Usage: 7 % exportgmsh(mesh, groundedice_levelset,filename)7 % exportgmsh(mesh,ocean_levelset,filename) 8 8 % 9 9 % Example: 10 % exportgmsh(md.mesh,md.mask. groundedice_levelset,'temp.msh')10 % exportgmsh(md.mesh,md.mask.ocean_levelset,'temp.msh') 11 11 12 12 fid=fopen(filename,'w'); … … 31 31 32 32 %Create flags 33 grounded = sum( groundedice_levelset(mesh.segments(:,1:2))>0,2);33 grounded = sum(ocean_levelset(mesh.segments(:,1:2))>0,2); 34 34 A = zeros(nbs,2); 35 35 pos = find(mesh.segmentmarkers==4); -
TabularUnified issm/trunk-jpl/src/m/contrib/tsantos/mismip/gl_position.m ¶
r24514 r24861 3 3 %initialization of some variables 4 4 if isfield(md.results,'TransientSolution') 5 data = md.results.TransientSolution(step).Mask GroundediceLevelset;5 data = md.results.TransientSolution(step).MaskOceanLevelset; 6 6 if isfield(md.results.TransientSolution,'MeshElements') 7 7 index = md.results.TransientSolution(step).MeshElements; … … 14 14 end 15 15 else 16 data = md.mask. groundedice_levelset;16 data = md.mask.ocean_levelset; 17 17 index = md.mesh.elements; 18 18 x = md.mesh.x; -
TabularUnified issm/trunk-jpl/src/m/contrib/tsantos/mismip/gl_position_static.m ¶
r24513 r24861 3 3 %initialization of some variables 4 4 if isfield(md.results,'TransientSolution') & false 5 data = md.results.TransientSolution(step).Mask GroundediceLevelset;5 data = md.results.TransientSolution(step).MaskOceanLevelset; 6 6 if isfield(md.results.TransientSolution,'MeshElements') 7 7 index = md.results.TransientSolution(step).MeshElements; … … 14 14 end 15 15 else 16 data = md.mask. groundedice_levelset;16 data = md.mask.ocean_levelset; 17 17 index = md.mesh.elements; 18 18 x = md.mesh.x; -
TabularUnified issm/trunk-jpl/src/m/contrib/tsantos/remesh.m ¶
r24515 r24861 63 63 NewModel.geometry.bed = md.results.TransientSolution(time_step).Bed;%md.geometry.bed; %use from parameterize 64 64 NewModel.geometry.thickness = md.results.TransientSolution(time_step).Thickness; 65 NewModel.mask. groundedice_levelset = md.results.TransientSolution(time_step).MaskGroundediceLevelset;65 NewModel.mask.ocean_levelset = md.results.TransientSolution(time_step).MaskOceanLevelset; 66 66 67 67 %copy other data -
TabularUnified issm/trunk-jpl/src/m/geometry/VolumeAboveFloatation.m ¶
r22153 r24861 33 33 34 34 %5. take out the ones that are outside of levelset or floating 35 pos = find(min(md.mask.ice_levelset(index),[],2)>0 | min(md.mask. groundedice_levelset(index),[],2)<0);35 pos = find(min(md.mask.ice_levelset(index),[],2)>0 | min(md.mask.ocean_levelset(index),[],2)<0); 36 36 V(pos) = 0; 37 37 -
TabularUnified issm/trunk-jpl/src/m/mesh/TwoDToThreeD.m ¶
r24779 r24861 38 38 else 39 39 md.mask.ice_levelset=mask.ice_levelset; 40 md.mask. groundedice_levelset=mask.groundedice_levelset;40 md.mask.ocean_levelset=mask.ocean_levelset; 41 41 end -
TabularUnified issm/trunk-jpl/src/m/mesh/modelmerge2d.m ¶
r24155 r24861 95 95 %now we can go through classes and transfer. 96 96 md=transfer_fields(md,md1,md2,'geometry',{'thickness','surface','bed','base'}); 97 md=transfer_fields(md,md1,md2,'mask',{' groundedice_levelset','ice_levelset','ocean_levelset','land_levelset','glacier_levelset'});97 md=transfer_fields(md,md1,md2,'mask',{'ocean_levelset','ice_levelset','ocean_levelset','land_levelset','glacier_levelset'}); 98 98 md=transfer_fields(md,md1,md2,'smb',{'mass_balance'}); 99 99 if strcmpi(class(md1.basalforcings),'linearbasalforcings'), -
TabularUnified issm/trunk-jpl/src/m/miscellaneous/diagnostics.m ¶
r22939 r24861 35 35 %grounding line : 36 36 if getfieldvalue(options,'gl',0), 37 contours=contourlevelzero(md,md.mask. groundedice_levelset,0);37 contours=contourlevelzero(md,md.mask.ocean_levelset,0); 38 38 expwrite(contours,[path '/groundingline.exp']); 39 39 exp2shp([path '/groundingline.shp'],[path '/groundingline.exp']); -
TabularUnified issm/trunk-jpl/src/m/miscellaneous/transientrestart.m ¶
r24552 r24861 55 55 56 56 %Update mask 57 if isfield(results,'Mask GroundediceLevelset'),58 md.mask. groundedice_levelset = results.MaskGroundediceLevelset;57 if isfield(results,'MaskOceanLevelset'), 58 md.mask.ocean_levelset = results.MaskOceanLevelset; 59 59 end 60 60 if isfield(results,'MaskIceLevelset'), -
TabularUnified issm/trunk-jpl/src/m/parameterization/killberg.m ¶
r24111 r24861 3 3 %KILLBERG - kill ice berg 4 4 % 5 % check md.mask.ice_levelset and md.mask. groundedice_levelset and5 % check md.mask.ice_levelset and md.mask.ocean_levelset and 6 6 % remove icebergs from md.mask.ice_levelset. This function is adapted 7 7 % from src/c/modules/KillIcebergsx/KillIcebergsx.cpp … … 25 25 %do not go through elements that are grounded, mark flag as 1 (done) 26 26 %and initialize mask as 1 for all vertices of these elements 27 isgrounded = max(md.mask. groundedice_levelset(md.mesh.elements),[],2)>0;27 isgrounded = max(md.mask.ocean_levelset(md.mesh.elements),[],2)>0; 28 28 pos = find(isgrounded); 29 29 element_flag(pos) = 1; -
TabularUnified issm/trunk-jpl/src/m/parameterization/sethydrostaticmask.m ¶
r18294 r24861 1 1 function md=sethydrostaticmask(md) 2 %SETHYDROSTATICMASK - establish groundedice_levelset field2 %SETHYDROSTATICMASK - establish ocean_levelset field 3 3 % 4 4 % Determines grounded and floating ice position based on … … 16 16 17 17 %grounded ice level set 18 md.mask. groundedice_levelset=md.geometry.thickness+md.geometry.bed*md.materials.rho_water/md.materials.rho_ice;18 md.mask.ocean_levelset=md.geometry.thickness+md.geometry.bed*md.materials.rho_water/md.materials.rho_ice; 19 19 20 20 %Check consistency of geometry 21 pos=find(md.mask. groundedice_levelset>0);21 pos=find(md.mask.ocean_levelset>0); 22 22 if(any(md.geometry.base(pos)~=md.geometry.bed(pos))), 23 23 disp('WARNING: md.geometry.bed and md.geometry.base not equal on grounded ice'); 24 24 end 25 25 26 pos=find(md.mask. groundedice_levelset<=0);26 pos=find(md.mask.ocean_levelset<=0); 27 27 if(any(md.geometry.base(pos)<md.geometry.bed(pos))), 28 28 disp('WARNING: md.geometry.base < md.geometry.bed on floating ice'); -
TabularUnified issm/trunk-jpl/src/m/parameterization/sethydrostaticmask.py ¶
r24213 r24861 4 4 def setmask(md): 5 5 """ 6 SETHYDROSTATICMASK - establish groundedice_levelset field6 SETHYDROSTATICMASK - establish ocean_levelset field 7 7 8 8 Determines grounded and floating ice position based on … … 20 20 21 21 # grounded ice level set 22 md.mask. groundedice_levelset = md.geometry.thickness + md.geometry.bed * md.materials.rho_water / md.materials.rho_ice22 md.mask.ocean_levelset = md.geometry.thickness + md.geometry.bed * md.materials.rho_water / md.materials.rho_ice 23 23 24 24 #Check consistency of geometry 25 if any(md.geometry.base[np.nonzero(md.mask. groundedice_levelset > 0.)] != md.geometry.bed[np.nonzero(md.mask.groundedice_levelset > 0.)]):25 if any(md.geometry.base[np.nonzero(md.mask.ocean_levelset > 0.)] != md.geometry.bed[np.nonzero(md.mask.ocean_levelset > 0.)]): 26 26 print("WARNING: md.geometry.bed and md.geometry.base not equal on grounded ice") 27 27 28 if any(md.geometry.base[np.nonzero(md.mask. groundedice_levelset <= 0.)] < md.geometry.bed[np.nonzero(md.mask.groundedice_levelset <= 0.)]):28 if any(md.geometry.base[np.nonzero(md.mask.ocean_levelset <= 0.)] < md.geometry.bed[np.nonzero(md.mask.ocean_levelset <= 0.)]): 29 29 print("WARNING: md.geometry.base < md.geometry.bed on floating ice") 30 30 -
TabularUnified issm/trunk-jpl/src/m/parameterization/setmask.m ¶
r17433 r24861 53 53 54 54 %level sets 55 md.mask. groundedice_levelset=vertexongroundedice;56 md.mask. groundedice_levelset(find(vertexongroundedice==0.))=-1.;55 md.mask.ocean_levelset=vertexongroundedice; 56 md.mask.ocean_levelset(find(vertexongroundedice==0.))=-1.; 57 57 58 58 if(nargin>3) -
TabularUnified issm/trunk-jpl/src/m/parameterization/setmask.py ¶
r24261 r24861 56 56 57 57 #level sets 58 md.mask. groundedice_levelset = -1. * np.ones(md.mesh.numberofvertices)59 md.mask. groundedice_levelset[md.mesh.elements[np.nonzero(elementongroundedice), :] - 1] = 1.58 md.mask.ocean_levelset = -1. * np.ones(md.mesh.numberofvertices) 59 md.mask.ocean_levelset[md.mesh.elements[np.nonzero(elementongroundedice), :] - 1] = 1. 60 60 61 61 if(len(args)): -
TabularUnified issm/trunk-jpl/src/m/regional/BasinConstrainShelf.m ¶
r15987 r24861 66 66 67 67 %iceshelves: any vertex on floating ice is spc'd 68 pos=find(md.mask. groundedice_levelset<0.);68 pos=find(md.mask.ocean_levelset<0.); 69 69 md.stressbalance.spcvx(pos)=md.inversion.vx_obs(pos); 70 70 md.stressbalance.spcvy(pos)=md.inversion.vy_obs(pos);
Note:
See TracChangeset
for help on using the changeset viewer.